From 0da87d82f963caf22e3a62148a8442525a8813be Mon Sep 17 00:00:00 2001 From: Alvin Wong Date: Sun, 20 Nov 2022 23:12:52 +0800 Subject: [PATCH 1/5] cmake: Add messages regarding version string --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0a60ba31e..5c72713c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,10 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) set(CPPWINRT_BUILD_VERSION "2.3.4.5" CACHE STRING "The version string used for cppwinrt.") +if(CPPWINRT_BUILD_VERSION STREQUAL "2.3.4.5" OR CPPWINRT_BUILD_VERSION STREQUAL "0.0.0.0") + message(WARNING "CPPWINRT_BUILD_VERSION has been set to a dummy version string. Do not use in production!") +endif() +message(STATUS "Using version string: ${CPPWINRT_BUILD_VERSION}") add_compile_definitions(CPPWINRT_VERSION_STRING="${CPPWINRT_BUILD_VERSION}") # WinMD uses CreateFile2 which requires Windows 8. From 52b8a6480762cff21694a25abdfc64cc191870fa Mon Sep 17 00:00:00 2001 From: Alvin Wong Date: Sun, 20 Nov 2022 23:13:37 +0800 Subject: [PATCH 2/5] cmake: Only define CPPWINRT_VERSION_STRING for prebuild and cppwinrt --- CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c72713c8..e20f16553 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,6 @@ if(CPPWINRT_BUILD_VERSION STREQUAL "2.3.4.5" OR CPPWINRT_BUILD_VERSION STREQUAL message(WARNING "CPPWINRT_BUILD_VERSION has been set to a dummy version string. Do not use in production!") endif() message(STATUS "Using version string: ${CPPWINRT_BUILD_VERSION}") -add_compile_definitions(CPPWINRT_VERSION_STRING="${CPPWINRT_BUILD_VERSION}") # WinMD uses CreateFile2 which requires Windows 8. add_compile_definitions(_WIN32_WINNT=0x0602) @@ -28,6 +27,7 @@ set(PREBUILD_SRCS prebuild/pch.h ) add_executable(prebuild ${PREBUILD_SRCS}) +target_compile_definitions(prebuild PRIVATE CPPWINRT_VERSION_STRING="${CPPWINRT_BUILD_VERSION}") target_include_directories(prebuild PRIVATE cppwinrt/) @@ -94,6 +94,7 @@ set(CPPWINRT_RESOURCES ) add_executable(cppwinrt ${CPPWINRT_SRCS} ${CPPWINRT_RESOURCES} ${CPPWINRT_HEADERS}) +target_compile_definitions(cppwinrt PRIVATE CPPWINRT_VERSION_STRING="${CPPWINRT_BUILD_VERSION}") target_include_directories(cppwinrt PRIVATE ${PROJECT_BINARY_DIR}) target_link_libraries(cppwinrt shlwapi) From 8209e6ebd16104d35466f6a6e2190398f16fab7b Mon Sep 17 00:00:00 2001 From: Alvin Wong Date: Sun, 20 Nov 2022 23:14:04 +0800 Subject: [PATCH 3/5] cmake: Allow excluding tests --- CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e20f16553..1b7900488 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -169,4 +169,6 @@ target_include_directories(cppwinrt PRIVATE "${winmd_SOURCE_DIR}") include(CTest) -add_subdirectory(test) +if(BUILD_TESTING) + add_subdirectory(test) +endif() From dfa97a007896f99232da2125d9d35b02fbf4cffb Mon Sep 17 00:00:00 2001 From: Alvin Wong Date: Sun, 20 Nov 2022 23:14:28 +0800 Subject: [PATCH 4/5] cmake: Set correct required version Precompiled header support is only available since CMake 3.16 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b7900488..fd49ba15b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ # # It most probably doesn't work with MSVC. -cmake_minimum_required(VERSION 3.12) +cmake_minimum_required(VERSION 3.16) project(cppwinrt LANGUAGES CXX) From 852bab892aee5519f5537e1c19af56ff3536e1e3 Mon Sep 17 00:00:00 2001 From: Alvin Wong Date: Sun, 20 Nov 2022 23:24:36 +0800 Subject: [PATCH 5/5] cmake: Add install target for downstream packaging --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index fd49ba15b..bcc3ca583 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -98,6 +98,8 @@ target_compile_definitions(cppwinrt PRIVATE CPPWINRT_VERSION_STRING="${CPPWINRT_ target_include_directories(cppwinrt PRIVATE ${PROJECT_BINARY_DIR}) target_link_libraries(cppwinrt shlwapi) +install(TARGETS cppwinrt) + # HACK: Handle the xmllite import lib. # mingw-w64 before commit 5ac1a2c is missing the import lib for xmllite. This