From 9bb824a237117a6d0b9ed6826ace2845645fecab Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Sun, 29 Jan 2023 22:53:11 -0500 Subject: cmTarget: put compile-related properties in a group --- Source/cmTarget.cxx | 110 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 66 insertions(+), 44 deletions(-) diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 37f9e98..df2d9c6 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -501,17 +501,77 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, // Setup default property values. if (this->CanCompileSources()) { + // Compilation properties + initProp("INTERPROCEDURAL_OPTIMIZATION"); + // initProp("INTERPROCEDURAL_OPTIMIZATION_"); (per-config block) + initProp("NO_SYSTEM_FROM_IMPORTED"); + initProp("VISIBILITY_INLINES_HIDDEN"); + initProp("COMPILE_WARNING_AS_ERROR"); + // -- Features + // ---- PCH + initProp("DISABLE_PRECOMPILE_HEADERS"); + initPropValue("PCH_WARN_INVALID", "ON"); + initPropValue("PCH_INSTANTIATE_TEMPLATES", "ON"); + // -- Platforms + // ---- Android + initProp("ANDROID_API"); + initProp("ANDROID_API_MIN"); + initProp("ANDROID_ARCH"); + initProp("ANDROID_ASSETS_DIRECTORIES"); + initProp("ANDROID_JAVA_SOURCE_DIR"); + initProp("ANDROID_STL_TYPE"); + // ---- macOS + initProp("OSX_ARCHITECTURES"); + // ---- Windows + initProp("MSVC_DEBUG_INFORMATION_FORMAT"); + initProp("MSVC_RUNTIME_LIBRARY"); + initProp("VS_JUST_MY_CODE_DEBUGGING"); + // ---- OpenWatcom + initProp("WATCOM_RUNTIME_LIBRARY"); + // -- Language + // ---- C SETUP_COMMON_LANGUAGE_PROPERTIES(C); - SETUP_COMMON_LANGUAGE_PROPERTIES(OBJC); + // ---- C++ SETUP_COMMON_LANGUAGE_PROPERTIES(CXX); - SETUP_COMMON_LANGUAGE_PROPERTIES(OBJCXX); + // ---- CUDA SETUP_COMMON_LANGUAGE_PROPERTIES(CUDA); + initProp("CUDA_SEPARABLE_COMPILATION"); + initProp("CUDA_ARCHITECTURES"); + // ---- Fortran + initProp("Fortran_FORMAT"); + initProp("Fortran_MODULE_DIRECTORY"); + initProp("Fortran_COMPILER_LAUNCHER"); + initProp("Fortran_PREPROCESS"); + initProp("Fortran_VISIBILITY_PRESET"); + // ---- HIP SETUP_COMMON_LANGUAGE_PROPERTIES(HIP); + initProp("HIP_ARCHITECTURES"); + // ---- ISPC + initProp("ISPC_COMPILER_LAUNCHER"); + initProp("ISPC_HEADER_DIRECTORY"); + initPropValue("ISPC_HEADER_SUFFIX", "_ispc.h"); + initProp("ISPC_INSTRUCTION_SETS"); + // ---- Objective C + SETUP_COMMON_LANGUAGE_PROPERTIES(OBJC); + // ---- Objective C++ + SETUP_COMMON_LANGUAGE_PROPERTIES(OBJCXX); + // ---- Swift + initProp("Swift_LANGUAGE_VERSION"); + initProp("Swift_MODULE_DIRECTORY"); + // ---- moc + initProp("AUTOMOC"); + initProp("AUTOMOC_COMPILER_PREDEFINES"); + initProp("AUTOMOC_MACRO_NAMES"); + initProp("AUTOMOC_MOC_OPTIONS"); + initProp("AUTOMOC_PATH_PREFIX"); + // ---- uic + initProp("AUTOUIC"); + initProp("AUTOUIC_OPTIONS"); + initProp("AUTOUIC_SEARCH_PATHS"); + // ---- rcc + initProp("AUTORCC"); + initProp("AUTORCC_OPTIONS"); - initProp("ANDROID_API"); - initProp("ANDROID_API_MIN"); - initProp("ANDROID_ARCH"); - initProp("ANDROID_STL_TYPE"); initProp("ANDROID_SKIP_ANT_STEP"); initProp("ANDROID_PROCESS_MAX"); initProp("ANDROID_PROGUARD"); @@ -519,10 +579,8 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, initProp("ANDROID_SECURE_PROPS_PATH"); initProp("ANDROID_NATIVE_LIB_DIRECTORIES"); initProp("ANDROID_NATIVE_LIB_DEPENDENCIES"); - initProp("ANDROID_JAVA_SOURCE_DIR"); initProp("ANDROID_JAR_DIRECTORIES"); initProp("ANDROID_JAR_DEPENDENCIES"); - initProp("ANDROID_ASSETS_DIRECTORIES"); initProp("ANDROID_ANT_ADDITIONAL_OPTIONS"); initProp("BUILD_RPATH"); initProp("BUILD_RPATH_USE_ORIGIN"); @@ -531,7 +589,6 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, initProp("INSTALL_REMOVE_ENVIRONMENT_RPATH"); initPropValue("INSTALL_RPATH", ""); initPropValue("INSTALL_RPATH_USE_LINK_PATH", "OFF"); - initProp("INTERPROCEDURAL_OPTIMIZATION"); initPropValue("SKIP_BUILD_RPATH", "OFF"); initPropValue("BUILD_WITH_INSTALL_RPATH", "OFF"); initProp("ARCHIVE_OUTPUT_DIRECTORY"); @@ -541,36 +598,16 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, initProp("COMPILE_PDB_OUTPUT_DIRECTORY"); initProp("FRAMEWORK"); initProp("FRAMEWORK_MULTI_CONFIG_POSTFIX"); - initProp("Fortran_FORMAT"); - initProp("Fortran_MODULE_DIRECTORY"); - initProp("Fortran_COMPILER_LAUNCHER"); - initProp("Fortran_PREPROCESS"); - initProp("Fortran_VISIBILITY_PRESET"); initProp("GNUtoMS"); - initProp("OSX_ARCHITECTURES"); initProp("IOS_INSTALL_COMBINED"); - initProp("AUTOMOC"); - initProp("AUTOUIC"); - initProp("AUTORCC"); initProp("AUTOGEN_ORIGIN_DEPENDS"); initProp("AUTOGEN_PARALLEL"); - initProp("AUTOMOC_COMPILER_PREDEFINES"); initProp("AUTOMOC_DEPEND_FILTERS"); - initProp("AUTOMOC_MACRO_NAMES"); - initProp("AUTOMOC_MOC_OPTIONS"); - initProp("AUTOUIC_OPTIONS"); - initProp("AUTOMOC_PATH_PREFIX"); - initProp("AUTOUIC_SEARCH_PATHS"); - initProp("AUTORCC_OPTIONS"); initProp("LINK_DEPENDS_NO_SHARED"); initProp("LINK_INTERFACE_LIBRARIES"); - initProp("MSVC_DEBUG_INFORMATION_FORMAT"); - initProp("MSVC_RUNTIME_LIBRARY"); - initProp("WATCOM_RUNTIME_LIBRARY"); initProp("WIN32_EXECUTABLE"); initProp("MACOSX_BUNDLE"); initProp("MACOSX_RPATH"); - initProp("NO_SYSTEM_FROM_IMPORTED"); initProp("BUILD_WITH_INSTALL_NAME_DIR"); initProp("C_CLANG_TIDY"); initProp("C_CLANG_TIDY_EXPORT_FIXES_DIR"); @@ -585,20 +622,12 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, initProp("CXX_CPPCHECK"); initProp("CXX_INCLUDE_WHAT_YOU_USE"); initProp("CXX_LINKER_LAUNCHER"); - initProp("CUDA_SEPARABLE_COMPILATION"); initProp("CUDA_RESOLVE_DEVICE_SYMBOLS"); initProp("CUDA_RUNTIME_LIBRARY"); - initProp("CUDA_ARCHITECTURES"); initProp("HIP_RUNTIME_LIBRARY"); - initProp("HIP_ARCHITECTURES"); - initProp("VISIBILITY_INLINES_HIDDEN"); initProp("JOB_POOL_COMPILE"); initProp("JOB_POOL_LINK"); initProp("JOB_POOL_PRECOMPILE_HEADER"); - initProp("ISPC_COMPILER_LAUNCHER"); - initProp("ISPC_HEADER_DIRECTORY"); - initPropValue("ISPC_HEADER_SUFFIX", "_ispc.h"); - initProp("ISPC_INSTRUCTION_SETS"); initProp("LINK_SEARCH_START_STATIC"); initProp("LINK_SEARCH_END_STATIC"); initProp("OBJC_CLANG_TIDY"); @@ -607,20 +636,13 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, initProp("OBJCXX_CLANG_TIDY"); initProp("OBJCXX_CLANG_TIDY_EXPORT_FIXES_DIR"); initProp("OBJCXX_LINKER_LAUNCHER"); - initProp("Swift_LANGUAGE_VERSION"); - initProp("Swift_MODULE_DIRECTORY"); - initProp("VS_JUST_MY_CODE_DEBUGGING"); initProp("VS_NO_COMPILE_BATCHING"); - initProp("DISABLE_PRECOMPILE_HEADERS"); initProp("UNITY_BUILD"); initProp("UNITY_BUILD_UNIQUE_ID"); initProp("OPTIMIZE_DEPENDENCIES"); initProp("EXPORT_COMPILE_COMMANDS"); - initProp("COMPILE_WARNING_AS_ERROR"); initPropValue("UNITY_BUILD_BATCH_SIZE", "8"); initPropValue("UNITY_BUILD_MODE", "BATCH"); - initPropValue("PCH_WARN_INVALID", "ON"); - initPropValue("PCH_INSTANTIATE_TEMPLATES", "ON"); #ifdef __APPLE__ if (this->GetGlobalGenerator()->IsXcode()) { -- cgit v0.12 From ead9ff61f974c11e961defeb11eafd3b8468053d Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Sun, 29 Jan 2023 23:05:13 -0500 Subject: cmTarget: put linking-related properties in a group --- Source/cmTarget.cxx | 70 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 27 deletions(-) diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index df2d9c6..af29d18 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -572,25 +572,55 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, initProp("AUTORCC"); initProp("AUTORCC_OPTIONS"); - initProp("ANDROID_SKIP_ANT_STEP"); - initProp("ANDROID_PROCESS_MAX"); - initProp("ANDROID_PROGUARD"); - initProp("ANDROID_PROGUARD_CONFIG_PATH"); - initProp("ANDROID_SECURE_PROPS_PATH"); - initProp("ANDROID_NATIVE_LIB_DIRECTORIES"); - initProp("ANDROID_NATIVE_LIB_DEPENDENCIES"); - initProp("ANDROID_JAR_DIRECTORIES"); - initProp("ANDROID_JAR_DEPENDENCIES"); - initProp("ANDROID_ANT_ADDITIONAL_OPTIONS"); + // Linking properties + initProp("LINK_SEARCH_START_STATIC"); + initProp("LINK_SEARCH_END_STATIC"); + // -- Dependent library lookup + initProp("MACOSX_RPATH"); + // ---- Build initProp("BUILD_RPATH"); initProp("BUILD_RPATH_USE_ORIGIN"); - initProp("CXX_SCAN_FOR_MODULES"); + initPropValue("SKIP_BUILD_RPATH", "OFF"); + initPropValue("BUILD_WITH_INSTALL_RPATH", "OFF"); + initProp("BUILD_WITH_INSTALL_NAME_DIR"); + // ---- Install initProp("INSTALL_NAME_DIR"); initProp("INSTALL_REMOVE_ENVIRONMENT_RPATH"); initPropValue("INSTALL_RPATH", ""); initPropValue("INSTALL_RPATH_USE_LINK_PATH", "OFF"); - initPropValue("SKIP_BUILD_RPATH", "OFF"); - initPropValue("BUILD_WITH_INSTALL_RPATH", "OFF"); + // -- Platforms + // ---- Android + initProp("ANDROID_JAR_DIRECTORIES"); + initProp("ANDROID_JAR_DEPENDENCIES"); + initProp("ANDROID_NATIVE_LIB_DIRECTORIES"); + initProp("ANDROID_NATIVE_LIB_DEPENDENCIES"); + initProp("ANDROID_PROGUARD"); + initProp("ANDROID_PROGUARD_CONFIG_PATH"); + initProp("ANDROID_SECURE_PROPS_PATH"); + // ---- iOS + initProp("IOS_INSTALL_COMBINED"); + // ---- Windows + initProp("GNUtoMS"); + initProp("WIN32_EXECUTABLE"); + // -- Languages + // ---- C + initProp("C_LINKER_LAUNCHER"); + // ---- C++ + initProp("CXX_LINKER_LAUNCHER"); + // ---- CUDA + initProp("CUDA_RESOLVE_DEVICE_SYMBOLS"); + initProp("CUDA_RUNTIME_LIBRARY"); + // ---- HIP + initProp("HIP_RUNTIME_LIBRARY"); + // ---- Objective C + initProp("OBJC_LINKER_LAUNCHER"); + // ---- Objective C++ + initProp("OBJCXX_LINKER_LAUNCHER"); + + initProp("ANDROID_SKIP_ANT_STEP"); + initProp("ANDROID_PROCESS_MAX"); + initProp("ANDROID_ANT_ADDITIONAL_OPTIONS"); + initProp("CXX_SCAN_FOR_MODULES"); initProp("ARCHIVE_OUTPUT_DIRECTORY"); initProp("LIBRARY_OUTPUT_DIRECTORY"); initProp("RUNTIME_OUTPUT_DIRECTORY"); @@ -598,44 +628,30 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, initProp("COMPILE_PDB_OUTPUT_DIRECTORY"); initProp("FRAMEWORK"); initProp("FRAMEWORK_MULTI_CONFIG_POSTFIX"); - initProp("GNUtoMS"); - initProp("IOS_INSTALL_COMBINED"); initProp("AUTOGEN_ORIGIN_DEPENDS"); initProp("AUTOGEN_PARALLEL"); initProp("AUTOMOC_DEPEND_FILTERS"); initProp("LINK_DEPENDS_NO_SHARED"); initProp("LINK_INTERFACE_LIBRARIES"); - initProp("WIN32_EXECUTABLE"); initProp("MACOSX_BUNDLE"); - initProp("MACOSX_RPATH"); - initProp("BUILD_WITH_INSTALL_NAME_DIR"); initProp("C_CLANG_TIDY"); initProp("C_CLANG_TIDY_EXPORT_FIXES_DIR"); initProp("C_CPPLINT"); initProp("C_CPPCHECK"); initProp("C_INCLUDE_WHAT_YOU_USE"); - initProp("C_LINKER_LAUNCHER"); initProp("LINK_WHAT_YOU_USE"); initProp("CXX_CLANG_TIDY"); initProp("CXX_CLANG_TIDY_EXPORT_FIXES_DIR"); initProp("CXX_CPPLINT"); initProp("CXX_CPPCHECK"); initProp("CXX_INCLUDE_WHAT_YOU_USE"); - initProp("CXX_LINKER_LAUNCHER"); - initProp("CUDA_RESOLVE_DEVICE_SYMBOLS"); - initProp("CUDA_RUNTIME_LIBRARY"); - initProp("HIP_RUNTIME_LIBRARY"); initProp("JOB_POOL_COMPILE"); initProp("JOB_POOL_LINK"); initProp("JOB_POOL_PRECOMPILE_HEADER"); - initProp("LINK_SEARCH_START_STATIC"); - initProp("LINK_SEARCH_END_STATIC"); initProp("OBJC_CLANG_TIDY"); initProp("OBJC_CLANG_TIDY_EXPORT_FIXES_DIR"); - initProp("OBJC_LINKER_LAUNCHER"); initProp("OBJCXX_CLANG_TIDY"); initProp("OBJCXX_CLANG_TIDY_EXPORT_FIXES_DIR"); - initProp("OBJCXX_LINKER_LAUNCHER"); initProp("VS_NO_COMPILE_BATCHING"); initProp("UNITY_BUILD"); initProp("UNITY_BUILD_UNIQUE_ID"); -- cgit v0.12 From 6f9821d17973aa54119bd7255bbccd633228cd57 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Sun, 29 Jan 2023 23:08:38 -0500 Subject: cmTarget: put static analysis (co-compile) properties in a group --- Source/cmTarget.cxx | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index af29d18..2727893 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -617,6 +617,28 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, // ---- Objective C++ initProp("OBJCXX_LINKER_LAUNCHER"); + // Static analysis + // -- C + initProp("C_CLANG_TIDY"); + initProp("C_CLANG_TIDY_EXPORT_FIXES_DIR"); + initProp("C_CPPLINT"); + initProp("C_CPPCHECK"); + initProp("C_INCLUDE_WHAT_YOU_USE"); + // -- C++ + initProp("CXX_CLANG_TIDY"); + initProp("CXX_CLANG_TIDY_EXPORT_FIXES_DIR"); + initProp("CXX_CPPLINT"); + initProp("CXX_CPPCHECK"); + initProp("CXX_INCLUDE_WHAT_YOU_USE"); + // -- Objective C + initProp("OBJC_CLANG_TIDY"); + initProp("OBJC_CLANG_TIDY_EXPORT_FIXES_DIR"); + // -- Objective C++ + initProp("OBJCXX_CLANG_TIDY"); + initProp("OBJCXX_CLANG_TIDY_EXPORT_FIXES_DIR"); + // -- Linking + initProp("LINK_WHAT_YOU_USE"); + initProp("ANDROID_SKIP_ANT_STEP"); initProp("ANDROID_PROCESS_MAX"); initProp("ANDROID_ANT_ADDITIONAL_OPTIONS"); @@ -634,24 +656,9 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, initProp("LINK_DEPENDS_NO_SHARED"); initProp("LINK_INTERFACE_LIBRARIES"); initProp("MACOSX_BUNDLE"); - initProp("C_CLANG_TIDY"); - initProp("C_CLANG_TIDY_EXPORT_FIXES_DIR"); - initProp("C_CPPLINT"); - initProp("C_CPPCHECK"); - initProp("C_INCLUDE_WHAT_YOU_USE"); - initProp("LINK_WHAT_YOU_USE"); - initProp("CXX_CLANG_TIDY"); - initProp("CXX_CLANG_TIDY_EXPORT_FIXES_DIR"); - initProp("CXX_CPPLINT"); - initProp("CXX_CPPCHECK"); - initProp("CXX_INCLUDE_WHAT_YOU_USE"); initProp("JOB_POOL_COMPILE"); initProp("JOB_POOL_LINK"); initProp("JOB_POOL_PRECOMPILE_HEADER"); - initProp("OBJC_CLANG_TIDY"); - initProp("OBJC_CLANG_TIDY_EXPORT_FIXES_DIR"); - initProp("OBJCXX_CLANG_TIDY"); - initProp("OBJCXX_CLANG_TIDY_EXPORT_FIXES_DIR"); initProp("VS_NO_COMPILE_BATCHING"); initProp("UNITY_BUILD"); initProp("UNITY_BUILD_UNIQUE_ID"); -- cgit v0.12 From 32d21f215fc2630d17f893933d1960d57ad076de Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Sun, 29 Jan 2023 23:24:09 -0500 Subject: cmTarget: put build graph-related properties into a group --- Source/cmTarget.cxx | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 2727893..de38870 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -639,10 +639,31 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, // -- Linking initProp("LINK_WHAT_YOU_USE"); - initProp("ANDROID_SKIP_ANT_STEP"); - initProp("ANDROID_PROCESS_MAX"); + // Build graph properties + initProp("LINK_DEPENDS_NO_SHARED"); + initProp("UNITY_BUILD"); + initProp("UNITY_BUILD_UNIQUE_ID"); + initPropValue("UNITY_BUILD_BATCH_SIZE", "8"); + initPropValue("UNITY_BUILD_MODE", "BATCH"); + initProp("OPTIMIZE_DEPENDENCIES"); + // -- Android initProp("ANDROID_ANT_ADDITIONAL_OPTIONS"); + initProp("ANDROID_PROCESS_MAX"); + initProp("ANDROID_SKIP_ANT_STEP"); + // -- Autogen + initProp("AUTOGEN_ORIGIN_DEPENDS"); + initProp("AUTOGEN_PARALLEL"); + // -- moc + initProp("AUTOMOC_DEPEND_FILTERS"); + // -- C++ initProp("CXX_SCAN_FOR_MODULES"); + // -- Ninja + initProp("JOB_POOL_COMPILE"); + initProp("JOB_POOL_LINK"); + initProp("JOB_POOL_PRECOMPILE_HEADER"); + // -- Visual Studio + initProp("VS_NO_COMPILE_BATCHING"); + initProp("ARCHIVE_OUTPUT_DIRECTORY"); initProp("LIBRARY_OUTPUT_DIRECTORY"); initProp("RUNTIME_OUTPUT_DIRECTORY"); @@ -650,22 +671,9 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, initProp("COMPILE_PDB_OUTPUT_DIRECTORY"); initProp("FRAMEWORK"); initProp("FRAMEWORK_MULTI_CONFIG_POSTFIX"); - initProp("AUTOGEN_ORIGIN_DEPENDS"); - initProp("AUTOGEN_PARALLEL"); - initProp("AUTOMOC_DEPEND_FILTERS"); - initProp("LINK_DEPENDS_NO_SHARED"); initProp("LINK_INTERFACE_LIBRARIES"); initProp("MACOSX_BUNDLE"); - initProp("JOB_POOL_COMPILE"); - initProp("JOB_POOL_LINK"); - initProp("JOB_POOL_PRECOMPILE_HEADER"); - initProp("VS_NO_COMPILE_BATCHING"); - initProp("UNITY_BUILD"); - initProp("UNITY_BUILD_UNIQUE_ID"); - initProp("OPTIMIZE_DEPENDENCIES"); initProp("EXPORT_COMPILE_COMMANDS"); - initPropValue("UNITY_BUILD_BATCH_SIZE", "8"); - initPropValue("UNITY_BUILD_MODE", "BATCH"); #ifdef __APPLE__ if (this->GetGlobalGenerator()->IsXcode()) { -- cgit v0.12 From 47315d817c8f25c52675ed11401d617f708048be Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Sun, 29 Jan 2023 23:24:57 -0500 Subject: cmTarget: group remaining properties These are kind of a mixed assortment. --- Source/cmTarget.cxx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index de38870..5a2fa24 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -664,15 +664,22 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, // -- Visual Studio initProp("VS_NO_COMPILE_BATCHING"); + // Output location properties initProp("ARCHIVE_OUTPUT_DIRECTORY"); initProp("LIBRARY_OUTPUT_DIRECTORY"); initProp("RUNTIME_OUTPUT_DIRECTORY"); initProp("PDB_OUTPUT_DIRECTORY"); initProp("COMPILE_PDB_OUTPUT_DIRECTORY"); + + // -- macOS bundle properties initProp("FRAMEWORK"); initProp("FRAMEWORK_MULTI_CONFIG_POSTFIX"); - initProp("LINK_INTERFACE_LIBRARIES"); initProp("MACOSX_BUNDLE"); + + // Usage requirement properties + initProp("LINK_INTERFACE_LIBRARIES"); + + // Metadata initProp("EXPORT_COMPILE_COMMANDS"); #ifdef __APPLE__ -- cgit v0.12 From a7c29f3ebdd82000ba7c5e7bcba4db3e73266358 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Sun, 29 Jan 2023 23:25:20 -0500 Subject: cmTarget: use static string views for per-config properties --- Source/cmTarget.cxx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 5a2fa24..cd431fa 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -4,7 +4,6 @@ #include #include -#include #include #include #include @@ -724,10 +723,10 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, this->GetType() != cmStateEnums::GLOBAL_TARGET) { static const auto configProps = { /* clang-format needs this comment to break after the opening brace */ - "ARCHIVE_OUTPUT_DIRECTORY_", "LIBRARY_OUTPUT_DIRECTORY_", - "RUNTIME_OUTPUT_DIRECTORY_", "PDB_OUTPUT_DIRECTORY_", - "COMPILE_PDB_OUTPUT_DIRECTORY_", "MAP_IMPORTED_CONFIG_", - "INTERPROCEDURAL_OPTIMIZATION_" + "ARCHIVE_OUTPUT_DIRECTORY_"_s, "LIBRARY_OUTPUT_DIRECTORY_"_s, + "RUNTIME_OUTPUT_DIRECTORY_"_s, "PDB_OUTPUT_DIRECTORY_"_s, + "COMPILE_PDB_OUTPUT_DIRECTORY_"_s, "MAP_IMPORTED_CONFIG_"_s, + "INTERPROCEDURAL_OPTIMIZATION_"_s }; // Collect the set of configuration types. std::vector configNames = @@ -738,7 +737,7 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, // Interface libraries have no output locations, so honor only // the configuration map. if (this->impl->TargetType == cmStateEnums::INTERFACE_LIBRARY && - strcmp(prop, "MAP_IMPORTED_CONFIG_") != 0) { + prop != "MAP_IMPORTED_CONFIG_") { continue; } std::string property = cmStrCat(prop, configUpper); -- cgit v0.12