33#
44# It most probably doesn't work with MSVC.
55
6- cmake_minimum_required (VERSION 3.12 )
6+ cmake_minimum_required (VERSION 3.16 )
77
88project (cppwinrt LANGUAGES CXX)
99
1010set (CMAKE_CXX_STANDARD 17)
1111set (CMAKE_CXX_STANDARD_REQUIRED True )
1212
1313set (CPPWINRT_BUILD_VERSION "2.3.4.5" CACHE STRING "The version string used for cppwinrt." )
14- add_compile_definitions (CPPWINRT_VERSION_STRING="${CPPWINRT_BUILD_VERSION} " )
14+ if (CPPWINRT_BUILD_VERSION STREQUAL "2.3.4.5" OR CPPWINRT_BUILD_VERSION STREQUAL "0.0.0.0" )
15+ message (WARNING "CPPWINRT_BUILD_VERSION has been set to a dummy version string. Do not use in production!" )
16+ endif ()
17+ message (STATUS "Using version string: ${CPPWINRT_BUILD_VERSION} " )
1518
1619# WinMD uses CreateFile2 which requires Windows 8.
1720add_compile_definitions (_WIN32_WINNT=0x0602)
@@ -24,6 +27,7 @@ set(PREBUILD_SRCS
2427 prebuild/pch.h
2528)
2629add_executable (prebuild ${PREBUILD_SRCS} )
30+ target_compile_definitions (prebuild PRIVATE CPPWINRT_VERSION_STRING="${CPPWINRT_BUILD_VERSION} " )
2731target_include_directories (prebuild PRIVATE cppwinrt/)
2832
2933
@@ -90,9 +94,12 @@ set(CPPWINRT_RESOURCES
9094)
9195
9296add_executable (cppwinrt ${CPPWINRT_SRCS} ${CPPWINRT_RESOURCES} ${CPPWINRT_HEADERS} )
97+ target_compile_definitions (cppwinrt PRIVATE CPPWINRT_VERSION_STRING="${CPPWINRT_BUILD_VERSION} " )
9398target_include_directories (cppwinrt PRIVATE ${PROJECT_BINARY_DIR} )
9499target_link_libraries (cppwinrt shlwapi)
95100
101+ install (TARGETS cppwinrt)
102+
96103
97104# HACK: Handle the xmllite import lib.
98105# mingw-w64 before commit 5ac1a2c is missing the import lib for xmllite. This
@@ -164,4 +171,6 @@ target_include_directories(cppwinrt PRIVATE "${winmd_SOURCE_DIR}")
164171
165172
166173include (CTest)
167- add_subdirectory (test )
174+ if (BUILD_TESTING)
175+ add_subdirectory (test )
176+ endif ()
0 commit comments