From 29aa4d59d3710b136524ac0923c38bad81fab519 Mon Sep 17 00:00:00 2001 From: Wan-Teh Chang Date: Mon, 25 Dec 2023 13:49:37 -0800 Subject: [PATCH] Embed the manifest in a resource-definition script --- CMakeLists.txt | 21 +++++++++++++++------ apps/utf8.rc | 3 +++ tests/CMakeLists.txt | 11 +++++------ 3 files changed, 23 insertions(+), 12 deletions(-) create mode 100755 apps/utf8.rc diff --git a/CMakeLists.txt b/CMakeLists.txt index 524d81afad..f0de902126 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -668,16 +668,22 @@ endif() if(AVIF_BUILD_APPS) add_executable(avifenc apps/avifenc.c) - if(WIN32 AND NOT MINGW) - target_sources(avifenc PRIVATE apps/utf8.manifest) + if(WIN32) + target_sources(avifenc PRIVATE apps/utf8.rc) + if(NOT MINGW) + target_link_options(avifenc PRIVATE /MANIFEST:NO) + endif() endif() if(AVIF_USE_CXX) set_target_properties(avifenc PROPERTIES LINKER_LANGUAGE "CXX") endif() target_link_libraries(avifenc avif_apps) add_executable(avifdec apps/avifdec.c) - if(WIN32 AND NOT MINGW) - target_sources(avifdec PRIVATE apps/utf8.manifest) + if(WIN32) + target_sources(avifdec PRIVATE apps/utf8.rc) + if(NOT MINGW) + target_link_options(avifdec PRIVATE /MANIFEST:NO) + endif() endif() if(AVIF_USE_CXX) set_target_properties(avifdec PROPERTIES LINKER_LANGUAGE "CXX") @@ -710,8 +716,11 @@ if(AVIF_BUILD_APPS) ) add_executable(avifgainmaputil "${AVIFGAINMAPUTIL_SRCS}") - if(WIN32 AND NOT MINGW) - target_sources(avifgainmaputil PRIVATE apps/utf8.manifest) + if(WIN32) + target_sources(avifgainmaputil PRIVATE apps/utf8.rc) + if(NOT MINGW) + target_link_options(avifgainmaputil PRIVATE /MANIFEST:NO) + endif() endif() set_target_properties(avifgainmaputil PROPERTIES LINKER_LANGUAGE "CXX") target_include_directories(avifgainmaputil PRIVATE apps/avifgainmaputil/) diff --git a/apps/utf8.rc b/apps/utf8.rc new file mode 100755 index 0000000000..33c8f7ea0f --- /dev/null +++ b/apps/utf8.rc @@ -0,0 +1,3 @@ +#include + +1 RT_MANIFEST "utf8.manifest" diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 354709e754..f7623af2d8 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -226,18 +226,17 @@ if(AVIF_BUILD_APPS) # When building apps, test the avifenc/avifdec. # 'are_images_equal' is used to make sure inputs/outputs are unchanged. add_executable(are_images_equal gtest/are_images_equal.cc) - if(WIN32 AND NOT MINGW) - target_sources(are_images_equal PRIVATE ${CMAKE_SOURCE_DIR}/apps/utf8.manifest) + if(WIN32) + #target_sources(are_images_equal PRIVATE ${CMAKE_SOURCE_DIR}/apps/utf8.rc) + if(NOT MINGW) + target_link_options(are_images_equal PRIVATE /MANIFEST:NO) + endif() endif() target_link_libraries(are_images_equal aviftest_helpers) add_test(NAME test_cmd COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/test_cmd.sh ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/data ) set_tests_properties(test_cmd PROPERTIES ENVIRONMENT "AVIF_TEST_UTF8=1") - if(MINGW) - # Does not support manifest files. - set_tests_properties(test_cmd PROPERTIES ENVIRONMENT "AVIF_TEST_UTF8=0") - endif() add_test(NAME test_cmd_animation COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/test_cmd_animation.sh ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/data )