From e7239626b8d5db1624faa08293fd470fe019cd88 Mon Sep 17 00:00:00 2001 From: kobalicek Date: Mon, 21 Oct 2024 00:20:22 +0200 Subject: [PATCH] Updated minimum cmake version to 3.19 * The latest cmake versions started showing warnings about the minimum version supported as there are possibly some breaking changes not affecting us * Reworked some bits in CMakeLists.txt to take advantage of the raised version * Removed the use of policies that are now enabled by cmake by default * Removed deprecated build options --- CMakeLists.txt | 56 ++++++++++++-------------------------------------- 1 file changed, 13 insertions(+), 43 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 375350d..aa6df9d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,38 +1,16 @@ -cmake_minimum_required(VERSION 3.8 FATAL_ERROR) +cmake_minimum_required(VERSION 3.19 FATAL_ERROR) -cmake_policy(PUSH) - -if (POLICY CMP0063) - cmake_policy(SET CMP0063 NEW) # Honor visibility properties. -endif() - -if (POLICY CMP0092) - cmake_policy(SET CMP0092 NEW) # Don't add -W3 warning level by default. -endif() - -# Don't create a project if it was already created by another CMakeLists.txt. -# This allows one library to embed another library without making a collision. +# Don't create a project if it was already created by another CMakeLists.txt. This makes +# it possible to support both add_subdirectory() and include() ways of using AsmJit as a +# dependency. if (NOT CMAKE_PROJECT_NAME OR "${CMAKE_PROJECT_NAME}" STREQUAL "asmjit") project(asmjit CXX) endif() include(CheckCXXCompilerFlag) -INCLUDE(CheckCXXSourceCompiles) +include(CheckCXXSourceCompiles) include(GNUInstallDirs) -# AsmJit - Deprecated -# =================== - -if (DEFINED ASMJIT_BUILD_EMBED) - message(DEPRECATION "ASMJIT_BUILD_EMBED is deprecated, use ASMJIT_EMBED") - set(ASMJIT_EMBED "${ASMJIT_BUILD_EMBED}") -endif() - -if (DEFINED ASMJIT_BUILD_STATIC) - message(DEPRECATION "ASMJIT_BUILD_STATIC is deprecated, use ASMJIT_STATIC") - set(ASMJIT_STATIC "${ASMJIT_BUILD_STATIC}") -endif() - # AsmJit - Configuration - Build # ============================== @@ -212,18 +190,14 @@ function(asmjit_add_target target target_type) add_library(${target} ${target_type} ${X_SOURCES}) endif() - set_target_properties(${target} PROPERTIES DEFINE_SYMBOL "") - target_link_libraries(${target} PRIVATE ${X_LIBRARIES}) - - # target_link_options was added in cmake v3.13, don't use it for now... - foreach(link_flag ${ASMJIT_PRIVATE_LFLAGS}) - set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS " ${link_flag}") - endforeach() - - target_compile_features(${target} PUBLIC cxx_std_11) - set_property(TARGET ${target} PROPERTY CXX_EXTENSIONS NO) - set_property(TARGET ${target} PROPERTY CXX_VISIBILITY_PRESET hidden) + set_target_properties(${target} + PROPERTIES + DEFINE_SYMBOL "" + CXX_VISIBILITY_PRESET hidden) target_compile_options(${target} PRIVATE ${X_CFLAGS} ${ASMJIT_SANITIZE_CFLAGS} $<$:${X_CFLAGS_DBG}> $<$>:${X_CFLAGS_REL}>) + target_compile_features(${target} PUBLIC cxx_std_11) + target_link_options(${target} PRIVATE ${ASMJIT_PRIVATE_LFLAGS}) + target_link_libraries(${target} PRIVATE ${X_LIBRARIES}) if ("${target_type}" STREQUAL "TEST") add_test(NAME ${target} COMMAND ${target}) @@ -590,10 +564,8 @@ if (NOT ASMJIT_EMBED) $ $) - # Add asmjit::asmjit alias. + # Create an asmjit::asmjit alias. add_library(asmjit::asmjit ALIAS asmjit) - # TODO: [CMAKE] Deprecated alias - we use projectname::libraryname convention now. - add_library(AsmJit::AsmJit ALIAS asmjit) # Add AsmJit install instructions (library and public headers). if (NOT ASMJIT_NO_INSTALL) @@ -713,5 +685,3 @@ if (NOT ASMJIT_EMBED) endif() endif() - -cmake_policy(POP)