From 839d3858c1e5ee84e85d2177d684dd50def78449 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Sun, 13 Jun 2021 00:11:38 +0300 Subject: [PATCH 1/6] Cotire --- thirdparty/cotire.cmake | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/thirdparty/cotire.cmake b/thirdparty/cotire.cmake index 18b55d8..db12592 100644 --- a/thirdparty/cotire.cmake +++ b/thirdparty/cotire.cmake @@ -3706,7 +3706,7 @@ if (CMAKE_SCRIPT_MODE_FILE) COMPILER_VERSION "${CMAKE_${COTIRE_TARGET_LANGUAGE}_COMPILER_VERSION}" LANGUAGE "${COTIRE_TARGET_LANGUAGE}" IGNORE_PATH "${COTIRE_TARGET_IGNORE_PATH};${COTIRE_ADDITIONAL_PREFIX_HEADER_IGNORE_PATH}" - INCLUDE_PATH ${COTIRE_TARGET_INCLUDE_PATH} + INCLUDE_PATH "${COTIRE_TARGET_INCLUDE_PATH};${COTIRE_ADDITIONAL_PREFIX_HEADER_INCLUDE_PATH}" IGNORE_EXTENSIONS "${CMAKE_${COTIRE_TARGET_LANGUAGE}_SOURCE_FILE_EXTENSIONS};${COTIRE_ADDITIONAL_PREFIX_HEADER_IGNORE_EXTENSIONS}" INCLUDE_PRIORITY_PATH ${COTIRE_TARGET_INCLUDE_PRIORITY_PATH} INCLUDE_DIRECTORIES ${_includeDirs} @@ -3807,6 +3807,9 @@ else() set (COTIRE_ADDITIONAL_PREFIX_HEADER_IGNORE_PATH "" CACHE STRING "Ignore headers from these directories when generating the prefix header.") + set (COTIRE_ADDITIONAL_PREFIX_HEADER_INCLUDE_PATH "" CACHE STRING + "Include headers from these directories when generating the prefix header.") + set (COTIRE_UNITY_SOURCE_EXCLUDE_EXTENSIONS "m;mm" CACHE STRING "Ignore sources with the listed file extensions from the generated unity source.") @@ -3883,6 +3886,15 @@ else() "If not defined, defaults to empty list." ) + define_property( + CACHED_VARIABLE PROPERTY "COTIRE_ADDITIONAL_PREFIX_HEADER_INCLUDE_PATH" + BRIEF_DOCS "Include headers from these directories when generating the prefix header." + FULL_DOCS + "The variable can be set to a semicolon separated list of include directories." + "If a header file is found in one of these directories or sub-directories, it will be included in the generated prefix header." + "If not defined, defaults to empty list." + ) + define_property( CACHED_VARIABLE PROPERTY "COTIRE_ADDITIONAL_PREFIX_HEADER_IGNORE_EXTENSIONS" BRIEF_DOCS "Ignore includes with the listed file extensions from the generated prefix header." From 7cb811e4d1f17c732148aa73828fb5a14604654b Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Sat, 3 Jul 2021 09:28:32 +0300 Subject: [PATCH 2/6] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=BD=D0=B0=D1=8F=20CMLIB=5FMAIN=5FDIR=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=D0=B0=D1=91=D1=82=D1=81=D1=8F=20=D0=B2=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMLibExternalProject.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMLibExternalProject.cmake b/CMLibExternalProject.cmake index e223d20..4ba9bdc 100644 --- a/CMLibExternalProject.cmake +++ b/CMLibExternalProject.cmake @@ -4,6 +4,10 @@ if(CMAKE_BUILD_TYPE) list(APPEND CMLIB_EXT_PROJ_DEFAULT_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) endif() +if(CMLIB_MAIN_DIR) + list(APPEND CMLIB_EXT_PROJ_DEFAULT_ARGS -DCMLIB_MAIN_DIR=${CMLIB_MAIN_DIR}) +endif() + if(CMAKE_C_COMPILER) list(APPEND CMLIB_EXT_PROJ_DEFAULT_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}) endif() From 7c22ac6b82913969e874612ee519d6f4eea0ed09 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Tue, 6 Jul 2021 04:40:23 +0300 Subject: [PATCH 3/6] =?UTF-8?q?=D0=A4=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=BE=D0=B4=D0=BA=D0=BB=D1=8E?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B2=D1=8B=D1=87=D0=B8=D1=81?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B9=20=D1=81=20=D0=B2=D1=8B=D1=81?= =?UTF-8?q?=D0=BE=D0=BA=D0=BE=D0=B9=20=D1=82=D0=BE=D1=87=D0=BD=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8C=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMLibCommon.cmake | 1 + CMLibHighPrecisionMath.cmake | 40 ++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 CMLibHighPrecisionMath.cmake diff --git a/CMLibCommon.cmake b/CMLibCommon.cmake index 53d088d..8c5a77b 100644 --- a/CMLibCommon.cmake +++ b/CMLibCommon.cmake @@ -30,6 +30,7 @@ include(CMLibLSBInfo) include(CMLibCompiler) include(CMLibCompilerFlags) include(CMLibDistCC) +include(CMLibHighPrecisionMath) include(CMLibGenerateCompilerFeaturesHPP) include(CMLibFlagRemove) include(CMLibCotire) diff --git a/CMLibHighPrecisionMath.cmake b/CMLibHighPrecisionMath.cmake new file mode 100644 index 0000000..3204f60 --- /dev/null +++ b/CMLibHighPrecisionMath.cmake @@ -0,0 +1,40 @@ +function(enable_high_precision_math) + set(options QUAD MPFR) + set(oneValueArgs) + set(multiValueArgs) + + cmake_parse_arguments(_PKG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + if(MPFR AND QUAD) + message(FATAL_ERROR "Mutually exclusive options QUAD and MPFR") + endif() + + if(MPFR) + find_package(MPFR) + if(MPFR_FOUND) + find_package(MPFRCppThirdparty) + endif() + return() + endif() + + if(QUAD) + find_package(Quadmath) + if(QUADMATH_FOUND) + add_definitions(-DHAVE_QUADMATH=1) + endif() + return() + endif() + + # Default + find_package(Quadmath) + if(QUADMATH_FOUND) + add_definitions(-DHAVE_QUADMATH=1) + else() + find_package(MPFR) + if(MPFR_FOUND) + find_package(MPFRCppThirdparty) + else() + message(FATAL_ERROR "Nor Quadmath, nor MPFR found.") + endif() + endif() +endfunction() From 2f3f45f2a075396259bae58a1da8e66d09bb8e0f Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Tue, 6 Jul 2021 04:54:20 +0300 Subject: [PATCH 4/6] =?UTF-8?q?=D0=98=D0=BC=D0=B5=D0=BD=D0=B0=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMLibCommonLibraryTarget.cmake | 8 ++++---- CMLibHighPrecisionMath.cmake | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CMLibCommonLibraryTarget.cmake b/CMLibCommonLibraryTarget.cmake index e032738..4748e8a 100644 --- a/CMLibCommonLibraryTarget.cmake +++ b/CMLibCommonLibraryTarget.cmake @@ -4,15 +4,15 @@ function(add_common_library target) set(oneValueArgs OUTPUT_NAME) set(multiValueArgs SOURCES) - cmake_parse_arguments(_LOCAL "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + cmake_parse_arguments(_PREFIX "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - if(_LOCAL_OUTPUT_NAME) - set(output_name ${_LOCAL_OUTPUT_NAME}) + if(_PREFIX_OUTPUT_NAME) + set(output_name ${_PREFIX_OUTPUT_NAME}) else() set(output_name ${target}) endif() - add_library(${target} OBJECT ${_LOCAL_SOURCES}) + add_library(${target} OBJECT ${_PREFIX_SOURCES}) target_include_directories( ${target} PUBLIC $ $ $) diff --git a/CMLibHighPrecisionMath.cmake b/CMLibHighPrecisionMath.cmake index 3204f60..4fc64ea 100644 --- a/CMLibHighPrecisionMath.cmake +++ b/CMLibHighPrecisionMath.cmake @@ -3,13 +3,13 @@ function(enable_high_precision_math) set(oneValueArgs) set(multiValueArgs) - cmake_parse_arguments(_PKG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + cmake_parse_arguments(_PREFIX "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - if(MPFR AND QUAD) + if(_PREFIX_MPFR AND _PREFIX_QUAD) message(FATAL_ERROR "Mutually exclusive options QUAD and MPFR") endif() - if(MPFR) + if(_PREFIX_MPFR) find_package(MPFR) if(MPFR_FOUND) find_package(MPFRCppThirdparty) @@ -17,7 +17,7 @@ function(enable_high_precision_math) return() endif() - if(QUAD) + if(_PREFIX_QUAD) find_package(Quadmath) if(QUADMATH_FOUND) add_definitions(-DHAVE_QUADMATH=1) From 6b7220351e49fc962fde5dfa8367615f9bed6cfd Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Tue, 6 Jul 2021 05:24:41 +0300 Subject: [PATCH 5/6] =?UTF-8?q?=D0=9F=D0=BE=D0=B8=D1=81=D0=BA=20=D0=B1?= =?UTF-8?q?=D0=B8=D0=B1=D0=BB=D0=B8=D0=BE=D1=82=D0=B5=D0=BA=20=D0=B2=20?= =?UTF-8?q?=D0=B3=D0=BB=D0=BE=D0=B1=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=BE=D0=B1=D0=BB=D0=B0=D1=81=D1=82=D0=B8=20=D0=B2=D0=B8=D0=B4?= =?UTF-8?q?=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMLibHighPrecisionMath.cmake | 47 +++++++----------------------------- 1 file changed, 9 insertions(+), 38 deletions(-) diff --git a/CMLibHighPrecisionMath.cmake b/CMLibHighPrecisionMath.cmake index 4fc64ea..0480251 100644 --- a/CMLibHighPrecisionMath.cmake +++ b/CMLibHighPrecisionMath.cmake @@ -1,40 +1,11 @@ -function(enable_high_precision_math) - set(options QUAD MPFR) - set(oneValueArgs) - set(multiValueArgs) - - cmake_parse_arguments(_PREFIX "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - - if(_PREFIX_MPFR AND _PREFIX_QUAD) - message(FATAL_ERROR "Mutually exclusive options QUAD and MPFR") - endif() - - if(_PREFIX_MPFR) - find_package(MPFR) - if(MPFR_FOUND) - find_package(MPFRCppThirdparty) - endif() - return() - endif() - - if(_PREFIX_QUAD) - find_package(Quadmath) - if(QUADMATH_FOUND) - add_definitions(-DHAVE_QUADMATH=1) - endif() - return() - endif() - - # Default - find_package(Quadmath) - if(QUADMATH_FOUND) - add_definitions(-DHAVE_QUADMATH=1) +find_package(Quadmath) +if(QUADMATH_FOUND) + add_definitions(-DHAVE_QUADMATH=1) +else() + find_package(MPFR) + if(MPFR_FOUND) + find_package(MPFRCppThirdparty) else() - find_package(MPFR) - if(MPFR_FOUND) - find_package(MPFRCppThirdparty) - else() - message(FATAL_ERROR "Nor Quadmath, nor MPFR found.") - endif() + message(FATAL_ERROR "Nor Quadmath, nor MPFR found.") endif() -endfunction() +endif() From f500a10a0db04e26542f98cc0f39d8b01eb87d39 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Tue, 6 Jul 2021 05:26:42 +0300 Subject: [PATCH 6/6] =?UTF-8?q?=D0=9B=D0=B8=D1=88=D0=BD=D0=B5=D0=B5=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMLibCommon.cmake | 1 - 1 file changed, 1 deletion(-) diff --git a/CMLibCommon.cmake b/CMLibCommon.cmake index 8c5a77b..53d088d 100644 --- a/CMLibCommon.cmake +++ b/CMLibCommon.cmake @@ -30,7 +30,6 @@ include(CMLibLSBInfo) include(CMLibCompiler) include(CMLibCompilerFlags) include(CMLibDistCC) -include(CMLibHighPrecisionMath) include(CMLibGenerateCompilerFeaturesHPP) include(CMLibFlagRemove) include(CMLibCotire)