.evergreen/linker_tests_deps/app/CMakeLists.txt | 4 +-- CMakeLists.txt | 34 ++++--------------------- cmake/MongoC-Warnings.cmake | 9 +------ kms-message/CMakeLists.txt | 5 ++-- 4 files changed, 10 insertions(+), 42 deletions(-) diff --git a/.evergreen/linker_tests_deps/app/CMakeLists.txt b/.evergreen/linker_tests_deps/app/CMakeLists.txt index 1a5abb1d..9b9f907e 100644 --- a/.evergreen/linker_tests_deps/app/CMakeLists.txt +++ b/.evergreen/linker_tests_deps/app/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.5) +cmake_minimum_required (VERSION 3.15...4.0) project (app C) add_executable (app app.c) find_package (bson-1.0 1.11 REQUIRED) @@ -6,4 +6,4 @@ message ("-- libbson found version \"${bson-1.0_VERSION}\"") target_link_libraries (app PRIVATE mongo::bson_static) find_package (mongocrypt REQUIRED) -target_link_libraries (app PRIVATE mongo::mongocrypt) \ No newline at end of file +target_link_libraries (app PRIVATE mongo::mongocrypt) diff --git a/CMakeLists.txt b/CMakeLists.txt index c768faca..69e99f9d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,15 +1,4 @@ -cmake_minimum_required (VERSION 3.12) - -# Preempt the MSVC_RUNTIME_LIBRARY properties -if (POLICY CMP0091) - cmake_policy (SET CMP0091 NEW) -elseif (DEFINED CMAKE_MSVC_RUNTIME_LIBRARY) - message (WARNING "The CMAKE_MSVC_RUNTIME_LIBRARY variable is set, but CMake is too old to understand it") -endif () - -if (POLICY CMP0135) - cmake_policy (SET CMP0135 NEW) -endif () +cmake_minimum_required (VERSION 3.15...4.0) project (mongocrypt C) @@ -27,20 +16,7 @@ option (ENABLE_BUILD_FOR_PPA "Maintainer-only option for preparing PPA build" OF option (ENABLE_ONLINE_TESTS "Enable online tests and the csfle utility. Requires libmongoc." ON) if (ENABLE_WINDOWS_STATIC_RUNTIME) - if (POLICY CMP0091) - # CMake 3.15 makes this trivial: - set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") - else () - # Fix it up the old-fashioned way - string (REPLACE "/MDd" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") - string (REPLACE "/MD" "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") - string (REPLACE "/MDd" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - string (REPLACE "/MD" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") - string (APPEND CMAKE_C_FLAGS_DEBUG " /MTd") - string (APPEND CMAKE_CXX_FLAGS_DEBUG " /MTd") - string (APPEND CMAKE_C_FLAGS_RELEASE " /MT") - string (APPEND CMAKE_CXX_FLAGS_RELEASE " /MT") - endif () + set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") endif () list (APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) @@ -216,10 +192,10 @@ if (BUILD_VERSION STREQUAL "0.0.0") file (STRINGS ${PROJECT_SOURCE_DIR}/VERSION_CURRENT BUILD_VERSION) message (STATUS "File VERSION_CURRENT contained BUILD_VERSION ${BUILD_VERSION}") else () - find_package (PythonInterp) - if (PYTHONINTERP_FOUND) + find_package (Python COMPONENTS Interpreter) + if (TARGET Python::Interpreter) execute_process ( - COMMAND ${PYTHON_EXECUTABLE} etc/calc_release_version.py + COMMAND "${Python_EXECUTABLE}" etc/calc_release_version.py WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} OUTPUT_VARIABLE CALC_RELEASE_VERSION RESULT_VARIABLE CALC_RELEASE_VERSION_RESULT diff --git a/cmake/MongoC-Warnings.cmake b/cmake/MongoC-Warnings.cmake index 4784c933..eb104f48 100644 --- a/cmake/MongoC-Warnings.cmake +++ b/cmake/MongoC-Warnings.cmake @@ -42,14 +42,7 @@ function (mongoc_add_platform_compile_options) endforeach () endfunction () -if (CMAKE_VERSION VERSION_LESS 3.3) - # On older CMake versions, we'll just always pass the warning options, even - # if the generate warnings for the C++ check file - set (is_c_lang "1") -else () - # $ is only valid in CMake 3.3+ - set (is_c_lang "$") -endif () +set (is_c_lang "$") # These below warnings should always be unconditional hard errors, as the code is # almost definitely broken diff --git a/kms-message/CMakeLists.txt b/kms-message/CMakeLists.txt index 6848e61f..ff210d4f 100644 --- a/kms-message/CMakeLists.txt +++ b/kms-message/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 3.5) +cmake_minimum_required (VERSION 3.15...4.0) project (kms_message VERSION 0.0.1 LANGUAGES C @@ -7,8 +7,7 @@ project (kms_message set (CMAKE_C_STANDARD 99) include (CheckCCompilerFlag) -# All targets obey visibility, not just library targets. -cmake_policy (SET CMP0063 NEW) + set (CMAKE_C_VISIBILITY_PRESET hidden) set (KMS_MESSAGE_SOURCES src/kms_b64.c