|
16 | 16 |
|
17 | 17 | cmake_minimum_required(VERSION 3.30 FATAL_ERROR) |
18 | 18 | cmake_policy(VERSION 3.30) |
| 19 | +cmake_policy(SET CMP0003 NEW) |
| 20 | +cmake_policy(SET CMP0135 NEW) |
19 | 21 |
|
20 | 22 | file(STRINGS version.txt SBE_VERSION_TXT LIMIT_COUNT 1 REGEX "^[0-9]+(\\.[0-9]+)+") |
21 | 23 | string(REGEX REPLACE "^([0-9]+(\\.[0-9]+)+).*$" "\\1" SBE_VERSION_NUMERIC "${SBE_VERSION_TXT}") |
22 | 24 |
|
23 | 25 | project("sbe" VERSION "${SBE_VERSION_NUMERIC}") |
24 | 26 |
|
25 | | -include(ExternalProject) |
| 27 | +include(FetchContent) |
26 | 28 | include(CheckLibraryExists) |
27 | 29 |
|
28 | 30 | if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}) |
@@ -63,36 +65,12 @@ if (NOT DEFINED CMAKE_C_EXTENSIONS) |
63 | 65 | endif () |
64 | 66 |
|
65 | 67 | if (SBE_TESTS) |
66 | | - set(SBE_THIRDPARTY_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/thirdparty") |
67 | | - |
68 | | - ExternalProject_Add( |
69 | | - gtest |
70 | | - URL ${CMAKE_CURRENT_SOURCE_DIR}/cppbuild/googletest-release-1.12.1.zip |
71 | | - URL_MD5 2648d4138129812611cf6b6b4b497a3b |
72 | | - PREFIX "${SBE_THIRDPARTY_BINARY_DIR}/gtest" |
73 | | - CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER};-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} |
74 | | - BUILD_BYPRODUCTS "${SBE_THIRDPARTY_BINARY_DIR}/gtest/src/gtest-build/lib/${CMAKE_CFG_INTDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX};${SBE_THIRDPARTY_BINARY_DIR}/gtest/src/gtest-build/lib/${CMAKE_CFG_INTDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX}" |
75 | | - INSTALL_COMMAND "" |
76 | | - LOG_CONFIGURE ON |
77 | | - LOG_BUILD ON |
78 | | - ) |
79 | | - |
80 | | - ExternalProject_Get_Property(gtest source_dir) |
81 | | - set(GTEST_SOURCE_DIR ${source_dir}) |
82 | | - ExternalProject_Get_Property(gtest binary_dir) |
83 | | - set(GTEST_BINARY_DIR ${binary_dir}) |
84 | | - |
85 | | - if (MSVC AND CMAKE_BUILD_TYPE STREQUAL "Debug") |
86 | | - set(GTEST_POSTFIX "d") |
87 | | - else () |
88 | | - set(GTEST_POSTFIX "") |
89 | | - endif () |
| 68 | + FetchContent_Declare( |
| 69 | + gmock |
| 70 | + URL ${CMAKE_CURRENT_SOURCE_DIR}/cppbuild/googletest-1.14.0.zip |
| 71 | + URL_MD5 b4911e882c51cba34bebfb5df500a650) |
90 | 72 |
|
91 | | - set(GTEST_LIBS |
92 | | - ${GTEST_BINARY_DIR}/lib/${CMAKE_CFG_INTDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX} |
93 | | - ${GTEST_BINARY_DIR}/lib/${CMAKE_CFG_INTDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX} |
94 | | - ${GTEST_BINARY_DIR}/lib/${CMAKE_CFG_INTDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX} |
95 | | - ) |
| 73 | + FetchContent_MakeAvailable(gmock) |
96 | 74 | endif () |
97 | 75 |
|
98 | 76 | find_package(Threads) |
@@ -132,6 +110,8 @@ elseif (MSVC) |
132 | 110 |
|
133 | 111 | set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd /Od /Zi /MP") |
134 | 112 | set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT /MP") |
| 113 | + set(CMAKE_C_FLAGS_DEBUG "/MTd") |
| 114 | + set(CMAKE_C_FLAGS_RELEASE "/MT") |
135 | 115 |
|
136 | 116 | if (C_WARNINGS_AS_ERRORS) |
137 | 117 | add_compile_options($<$<COMPILE_LANGUAGE:C>:/WX>) |
|
0 commit comments