summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitattributes25
-rw-r--r--Help/release/3.9.rst7
-rw-r--r--Modules/CMakeDetermineCompilerId.cmake1
-rw-r--r--Modules/Compiler/GNU-Fortran.cmake2
-rw-r--r--Modules/FindBoost.cmake30
-rw-r--r--Modules/Platform/GNUtoMS_lib.bat.in6
-rwxr-xr-xModules/SquishRunTestCase.bat22
-rw-r--r--Source/CMakeVersion.cmake2
-rw-r--r--Source/cmGlobalXCodeGenerator.cxx11
-rw-r--r--Source/cmNinjaTargetGenerator.cxx8
-rw-r--r--Source/cmVisualStudio10TargetGenerator.cxx6
-rw-r--r--Tests/CMakeLib/testVisualStudioSlnParser_data/.gitattributes2
-rw-r--r--Tests/CMakeTests/.gitattributes2
-rw-r--r--Tests/MFC/mfc1/.gitattributes6
-rw-r--r--Tests/Module/CheckIPOSupported-C/CMakeLists.txt5
-rw-r--r--Tests/Module/CheckIPOSupported-CXX/CMakeLists.txt5
-rw-r--r--Tests/Module/CheckIPOSupported-Fortran/CMakeLists.txt5
-rw-r--r--Tests/Module/ExternalData/.gitattributes5
-rw-r--r--Tests/Module/ExternalData/MD5/.gitattributes1
-rw-r--r--Tests/Module/ExternalData/SHA1/.gitattributes1
-rw-r--r--Tests/Module/ExternalData/SHA224/.gitattributes1
-rw-r--r--Tests/Module/ExternalData/SHA256/.gitattributes1
-rw-r--r--Tests/Module/ExternalData/SHA3_256/.gitattributes1
-rw-r--r--Tests/MumpsCoverage/.gitattributes3
-rwxr-xr-xTests/SimpleInstall/scripts/sample_script.bat2
-rwxr-xr-xTests/SimpleInstallS2/scripts/sample_script.bat2
-rw-r--r--Utilities/Scripts/BoostScanDeps.cmake39
27 files changed, 123 insertions, 78 deletions
diff --git a/.gitattributes b/.gitattributes
index 3829160..fd878ac 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -8,20 +8,19 @@
# Do not perform whitespace checks. Do not format.
[attr]generated whitespace=-tab-in-indent,-indent-with-non-tab -format.clang-format
-bootstrap crlf=input
-configure crlf=input
-*.[1-9] crlf=input
-*.sh crlf=input
-*.sh.in crlf=input
+bootstrap eol=lf
+configure eol=lf
+*.[1-9] eol=lf
+*.sh eol=lf
+*.sh.in eol=lf
-*.bat -crlf
-*.bat.in -crlf
-*.dsp -crlf
-*.dsw -crlf
-*.pfx -crlf
-*.png -crlf
-*.sln -crlf
-*.vcproj -crlf
+*.bat eol=crlf
+*.bat.in eol=crlf
+*.sln eol=crlf
+*.vcproj eol=crlf
+
+*.pfx -text
+*.png -text
*.c our-c-style
*.cc our-c-style
diff --git a/Help/release/3.9.rst b/Help/release/3.9.rst
index 5087b43..897e268 100644
--- a/Help/release/3.9.rst
+++ b/Help/release/3.9.rst
@@ -34,8 +34,6 @@ Generators
This is an experimental feature and can be activated by setting the
:variable:`CMAKE_XCODE_GENERATE_SCHEME` variable to a ``TRUE`` value.
-* The :generator:`Xcode` generator now supports Xcode 9.
-
Commands
--------
@@ -337,3 +335,8 @@ Changes made since CMake 3.9.0 include the following.
* On macOS, the default application bundle ``Info.plist`` file no longer
enables Hi-DPI support as it did in 3.9.0 and 3.9.1. The change had
to be reverted because it broke iOS applications.
+
+* The Xcode generator no longer adds "outputPaths" to custom script
+ build phases as it did in 3.9.0 and 3.9.1. This was added in an
+ attempt to support Xcode 9's new build system, but broke incremental
+ rebuilds for both the old and new Xcode build systems.
diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake
index 8d4e6aa..f11059f 100644
--- a/Modules/CMakeDetermineCompilerId.cmake
+++ b/Modules/CMakeDetermineCompilerId.cmake
@@ -710,6 +710,7 @@ function(CMAKE_DETERMINE_MSVC_SHOWINCLUDES_PREFIX lang userflags)
OUTPUT_VARIABLE out
ERROR_VARIABLE err
RESULT_VARIABLE res
+ ENCODING AUTO # cl prints in current code page
)
if(res EQUAL 0 AND "${out}" MATCHES "(^|\n)([^:\n]*:[^:\n]*:[ \t]*)")
set(CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX "${CMAKE_MATCH_2}" PARENT_SCOPE)
diff --git a/Modules/Compiler/GNU-Fortran.cmake b/Modules/Compiler/GNU-Fortran.cmake
index 94dc275..c333d50 100644
--- a/Modules/Compiler/GNU-Fortran.cmake
+++ b/Modules/Compiler/GNU-Fortran.cmake
@@ -7,6 +7,8 @@ set(CMAKE_Fortran_PREPROCESS_SOURCE
set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed-form")
set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form")
+set(CMAKE_Fortran_POSTPROCESS_FLAG "-fpreprocessed")
+
# No -DNDEBUG for Fortran.
string(APPEND CMAKE_Fortran_FLAGS_MINSIZEREL_INIT " -Os")
string(APPEND CMAKE_Fortran_FLAGS_RELEASE_INIT " -O3")
diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake
index b4abf75..b28f2b8 100644
--- a/Modules/FindBoost.cmake
+++ b/Modules/FindBoost.cmake
@@ -554,7 +554,10 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
# The addition of a new release should only require it to be run
# against the new release.
set(_Boost_IMPORTED_TARGETS TRUE)
- if(NOT Boost_VERSION VERSION_LESS 103300 AND Boost_VERSION VERSION_LESS 103500)
+ if(Boost_VERSION VERSION_LESS 103300)
+ message(WARNING "Imported targets and dependency information not available for Boost version ${Boost_VERSION} (all versions older than 1.33)")
+ set(_Boost_IMPORTED_TARGETS FALSE)
+ elseif(NOT Boost_VERSION VERSION_LESS 103300 AND Boost_VERSION VERSION_LESS 103500)
set(_Boost_IOSTREAMS_DEPENDENCIES regex thread)
set(_Boost_REGEX_DEPENDENCIES thread)
set(_Boost_WAVE_DEPENDENCIES filesystem thread)
@@ -768,8 +771,27 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
else()
- message(WARNING "Imported targets not available for Boost version ${Boost_VERSION}")
- set(_Boost_IMPORTED_TARGETS FALSE)
+ if(NOT Boost_VERSION VERSION_LESS 106500)
+ set(_Boost_CHRONO_DEPENDENCIES system)
+ set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time)
+ set(_Boost_COROUTINE_DEPENDENCIES context system)
+ set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time)
+ set(_Boost_FILESYSTEM_DEPENDENCIES system)
+ set(_Boost_IOSTREAMS_DEPENDENCIES regex)
+ set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic)
+ set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
+ set(_Boost_MPI_DEPENDENCIES serialization)
+ set(_Boost_MPI_PYTHON_DEPENDENCIES python mpi serialization)
+ set(_Boost_NUMPY_DEPENDENCIES python)
+ set(_Boost_RANDOM_DEPENDENCIES system)
+ set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic)
+ set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
+ set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
+ endif()
+ if(NOT Boost_VERSION VERSION_LESS 106600)
+ message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets")
+ set(_Boost_IMPORTED_TARGETS FALSE)
+ endif()
endif()
string(TOUPPER ${component} uppercomponent)
@@ -819,6 +841,7 @@ function(_Boost_COMPONENT_HEADERS component _hdrs)
set(_Boost_MATH_TR1L_HEADERS "boost/math/tr1.hpp")
set(_Boost_MPI_HEADERS "boost/mpi.hpp")
set(_Boost_MPI_PYTHON_HEADERS "boost/mpi/python/config.hpp")
+ set(_Boost_NUMPY_HEADERS "boost/python/numpy.hpp")
set(_Boost_PRG_EXEC_MONITOR_HEADERS "boost/test/prg_exec_monitor.hpp")
set(_Boost_PROGRAM_OPTIONS_HEADERS "boost/program_options.hpp")
set(_Boost_PYTHON_HEADERS "boost/python.hpp")
@@ -1000,6 +1023,7 @@ else()
# _Boost_COMPONENT_HEADERS. See the instructions at the top of
# _Boost_COMPONENT_DEPENDENCIES.
set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS}
+ "1.65.0" "1.65"
"1.64.0" "1.64" "1.63.0" "1.63" "1.62.0" "1.62" "1.61.0" "1.61" "1.60.0" "1.60"
"1.59.0" "1.59" "1.58.0" "1.58" "1.57.0" "1.57" "1.56.0" "1.56" "1.55.0" "1.55"
"1.54.0" "1.54" "1.53.0" "1.53" "1.52.0" "1.52" "1.51.0" "1.51"
diff --git a/Modules/Platform/GNUtoMS_lib.bat.in b/Modules/Platform/GNUtoMS_lib.bat.in
index 2da920a..d70aea5 100644
--- a/Modules/Platform/GNUtoMS_lib.bat.in
+++ b/Modules/Platform/GNUtoMS_lib.bat.in
@@ -1,3 +1,3 @@
-@echo off
-call "@CMAKE_GNUtoMS_BAT@"
-lib /machine:"@CMAKE_GNUtoMS_ARCH@" %*
+@echo off
+call "@CMAKE_GNUtoMS_BAT@"
+lib /machine:"@CMAKE_GNUtoMS_ARCH@" %*
diff --git a/Modules/SquishRunTestCase.bat b/Modules/SquishRunTestCase.bat
index 5c5d388..293e88f 100755
--- a/Modules/SquishRunTestCase.bat
+++ b/Modules/SquishRunTestCase.bat
@@ -1,11 +1,11 @@
-echo 'Starting the squish server...'
-start %1
-
-echo 'Running the test case...'
-%2 --testcase %3 --wrapper %4 --aut %5
-set result=%ERRORLEVEL%
-
-echo 'Stopping the squish server...'
-%1 --stop
-
-exit \b %result%
+echo 'Starting the squish server...'
+start %1
+
+echo 'Running the test case...'
+%2 --testcase %3 --wrapper %4 --aut %5
+set result=%ERRORLEVEL%
+
+echo 'Stopping the squish server...'
+%1 --stop
+
+exit \b %result%
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index fdfb7a8..b61098f 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -1,5 +1,5 @@
# CMake version number components.
set(CMake_VERSION_MAJOR 3)
set(CMake_VERSION_MINOR 9)
-set(CMake_VERSION_PATCH 20170824)
+set(CMake_VERSION_PATCH 20170825)
#set(CMake_VERSION_RC 1)
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 3bdf789..9dbb173 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -1517,17 +1517,6 @@ void cmGlobalXCodeGenerator::AddCommandsToBuildPhase(
makecmd += " all";
buildphase->AddAttribute("shellScript", this->CreateString(makecmd));
buildphase->AddAttribute("showEnvVarsInLog", this->CreateString("0"));
-
- cmXCodeObject* outputFiles = this->CreateObject(cmXCodeObject::OBJECT_LIST);
- for (std::vector<cmCustomCommand>::const_iterator i = commands.begin();
- i != commands.end(); ++i) {
- std::vector<std::string> const& outputs = i->GetOutputs();
- for (std::vector<std::string>::const_iterator j = outputs.begin();
- j != outputs.end(); ++j) {
- outputFiles->AddObject(this->CreateString(*j));
- }
- }
- buildphase->AddAttribute("outputPaths", outputFiles);
}
void cmGlobalXCodeGenerator::CreateCustomRulesMakefile(
diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx
index ba44f0e..4a4e5b2 100644
--- a/Source/cmNinjaTargetGenerator.cxx
+++ b/Source/cmNinjaTargetGenerator.cxx
@@ -891,9 +891,15 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement(
// The actual compilation will now use the preprocessed source.
explicitDeps.push_back(ppFileName);
- // Preprocessing and compilation use the same flags.
+ // Preprocessing and compilation generally use the same flags.
ppVars["FLAGS"] = vars["FLAGS"];
+ // In case compilation requires flags that are incompatible with
+ // preprocessing, include them here.
+ std::string const postFlag =
+ this->Makefile->GetSafeDefinition("CMAKE_Fortran_POSTPROCESS_FLAG");
+ this->LocalGenerator->AppendFlags(vars["FLAGS"], postFlag);
+
// Move preprocessor definitions to the preprocessor build statement.
std::swap(ppVars["DEFINES"], vars["DEFINES"]);
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 5427539..0e73806 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -3698,10 +3698,10 @@ void cmVisualStudio10TargetGenerator::WriteSDKReferences()
this->WriteSingleSDKReference("WindowsIoT", iotExtensionsVersion);
}
}
+ }
- if (hasWrittenItemGroup) {
- this->WriteString("</ItemGroup>\n", 1);
- }
+ if (hasWrittenItemGroup) {
+ this->WriteString("</ItemGroup>\n", 1);
}
}
diff --git a/Tests/CMakeLib/testVisualStudioSlnParser_data/.gitattributes b/Tests/CMakeLib/testVisualStudioSlnParser_data/.gitattributes
index 5be3dc5..08b4ac4 100644
--- a/Tests/CMakeLib/testVisualStudioSlnParser_data/.gitattributes
+++ b/Tests/CMakeLib/testVisualStudioSlnParser_data/.gitattributes
@@ -1 +1 @@
-*.sln-file -crlf whitespace=cr-at-eol
+*.sln-file eol=crlf
diff --git a/Tests/CMakeTests/.gitattributes b/Tests/CMakeTests/.gitattributes
index c34e350..c6148fb 100644
--- a/Tests/CMakeTests/.gitattributes
+++ b/Tests/CMakeTests/.gitattributes
@@ -1 +1 @@
-File-HASH-Input.txt crlf=input
+File-HASH-Input.txt eol=lf
diff --git a/Tests/MFC/mfc1/.gitattributes b/Tests/MFC/mfc1/.gitattributes
deleted file mode 100644
index 59be5dc..0000000
--- a/Tests/MFC/mfc1/.gitattributes
+++ /dev/null
@@ -1,6 +0,0 @@
-.gitattributes export-ignore
-
-*.sln -crlf
-*.vcproj -crlf
-
-* -whitespace
diff --git a/Tests/Module/CheckIPOSupported-C/CMakeLists.txt b/Tests/Module/CheckIPOSupported-C/CMakeLists.txt
index 607dcd3..4a41a98 100644
--- a/Tests/Module/CheckIPOSupported-C/CMakeLists.txt
+++ b/Tests/Module/CheckIPOSupported-C/CMakeLists.txt
@@ -4,11 +4,12 @@ project(CheckIPOSupported-C LANGUAGES C)
cmake_policy(SET CMP0069 NEW)
include(CheckIPOSupported)
-check_ipo_supported(RESULT ipo_supported)
+check_ipo_supported(RESULT ipo_supported OUTPUT ipo_output)
if(ipo_supported)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
elseif(CMake_TEST_IPO_WORKS_C)
- message(FATAL_ERROR "IPO expected to work")
+ string(REPLACE "\n" "\n " ipo_output "${ipo_output}")
+ message(FATAL_ERROR "IPO expected to work, but the check failed:\n ${ipo_output}")
endif()
add_library(foo foo.c)
diff --git a/Tests/Module/CheckIPOSupported-CXX/CMakeLists.txt b/Tests/Module/CheckIPOSupported-CXX/CMakeLists.txt
index 2dede93..1bb2b84 100644
--- a/Tests/Module/CheckIPOSupported-CXX/CMakeLists.txt
+++ b/Tests/Module/CheckIPOSupported-CXX/CMakeLists.txt
@@ -4,11 +4,12 @@ project(CheckIPOSupported-CXX LANGUAGES CXX)
cmake_policy(SET CMP0069 NEW)
include(CheckIPOSupported)
-check_ipo_supported(RESULT ipo_supported)
+check_ipo_supported(RESULT ipo_supported OUTPUT ipo_output)
if(ipo_supported)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
elseif(CMake_TEST_IPO_WORKS_CXX)
- message(FATAL_ERROR "IPO expected to work")
+ string(REPLACE "\n" "\n " ipo_output "${ipo_output}")
+ message(FATAL_ERROR "IPO expected to work, but the check failed:\n ${ipo_output}")
endif()
add_library(foo foo.cpp)
diff --git a/Tests/Module/CheckIPOSupported-Fortran/CMakeLists.txt b/Tests/Module/CheckIPOSupported-Fortran/CMakeLists.txt
index dee5c25..3872b56 100644
--- a/Tests/Module/CheckIPOSupported-Fortran/CMakeLists.txt
+++ b/Tests/Module/CheckIPOSupported-Fortran/CMakeLists.txt
@@ -4,11 +4,12 @@ project(CheckIPOSupported-Fortran LANGUAGES Fortran)
cmake_policy(SET CMP0069 NEW)
include(CheckIPOSupported)
-check_ipo_supported(RESULT ipo_supported)
+check_ipo_supported(RESULT ipo_supported OUTPUT ipo_output)
if(ipo_supported)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
elseif(CMake_TEST_IPO_WORKS_Fortran)
- message(FATAL_ERROR "IPO expected to work")
+ string(REPLACE "\n" "\n " ipo_output "${ipo_output}")
+ message(FATAL_ERROR "IPO expected to work, but the check failed:\n ${ipo_output}")
endif()
add_library(foo foo.f)
diff --git a/Tests/Module/ExternalData/.gitattributes b/Tests/Module/ExternalData/.gitattributes
new file mode 100644
index 0000000..516129b
--- /dev/null
+++ b/Tests/Module/ExternalData/.gitattributes
@@ -0,0 +1,5 @@
+MD5/* -text
+SHA1/* -text
+SHA224/* -text
+SHA256/* -text
+SHA3_256/* -text
diff --git a/Tests/Module/ExternalData/MD5/.gitattributes b/Tests/Module/ExternalData/MD5/.gitattributes
deleted file mode 100644
index 3e51d39..0000000
--- a/Tests/Module/ExternalData/MD5/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-* -crlf
diff --git a/Tests/Module/ExternalData/SHA1/.gitattributes b/Tests/Module/ExternalData/SHA1/.gitattributes
deleted file mode 100644
index 3e51d39..0000000
--- a/Tests/Module/ExternalData/SHA1/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-* -crlf
diff --git a/Tests/Module/ExternalData/SHA224/.gitattributes b/Tests/Module/ExternalData/SHA224/.gitattributes
deleted file mode 100644
index 3e51d39..0000000
--- a/Tests/Module/ExternalData/SHA224/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-* -crlf
diff --git a/Tests/Module/ExternalData/SHA256/.gitattributes b/Tests/Module/ExternalData/SHA256/.gitattributes
deleted file mode 100644
index 3e51d39..0000000
--- a/Tests/Module/ExternalData/SHA256/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-* -crlf
diff --git a/Tests/Module/ExternalData/SHA3_256/.gitattributes b/Tests/Module/ExternalData/SHA3_256/.gitattributes
deleted file mode 100644
index 3e51d39..0000000
--- a/Tests/Module/ExternalData/SHA3_256/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-* -crlf
diff --git a/Tests/MumpsCoverage/.gitattributes b/Tests/MumpsCoverage/.gitattributes
index b680612..9fc9b0f 100644
--- a/Tests/MumpsCoverage/.gitattributes
+++ b/Tests/MumpsCoverage/.gitattributes
@@ -1,2 +1 @@
-*.cmcov -crlf -whitespace
-*.mcov -crlf -whitespace
+*.cmcov eol=crlf
diff --git a/Tests/SimpleInstall/scripts/sample_script.bat b/Tests/SimpleInstall/scripts/sample_script.bat
index 64a77b5..a9af38c 100755
--- a/Tests/SimpleInstall/scripts/sample_script.bat
+++ b/Tests/SimpleInstall/scripts/sample_script.bat
@@ -1 +1 @@
-@echo Sample Script Output
+@echo Sample Script Output
diff --git a/Tests/SimpleInstallS2/scripts/sample_script.bat b/Tests/SimpleInstallS2/scripts/sample_script.bat
index 64a77b5..a9af38c 100755
--- a/Tests/SimpleInstallS2/scripts/sample_script.bat
+++ b/Tests/SimpleInstallS2/scripts/sample_script.bat
@@ -1 +1 @@
-@echo Sample Script Output
+@echo Sample Script Output
diff --git a/Utilities/Scripts/BoostScanDeps.cmake b/Utilities/Scripts/BoostScanDeps.cmake
index 2fd8f86..bd2e6a8 100644
--- a/Utilities/Scripts/BoostScanDeps.cmake
+++ b/Utilities/Scripts/BoostScanDeps.cmake
@@ -39,29 +39,40 @@ function(_Boost_FIND_COMPONENT_DEPENDENCIES component includedir _ret_libs)
# Start by finding all headers for the component; header
# dependencies via #include will be solved by future passes
+ file(GLOB_RECURSE _boost_mpi_python_headers
+ RELATIVE "${includedir}"
+ "${includedir}/boost/mpi/python/*")
+ list(INSERT _boost_mpi_python_headers 0 "boost/mpi/python.hpp")
+
+ file(GLOB_RECURSE _boost_python_numpy_headers
+ RELATIVE "${includedir}"
+ "${includedir}/boost/python/numpy/*")
+ list(INSERT _boost_python_numpy_headers 0 "boost/python/numpy.hpp")
# Special-case since it is part of mpi; look only in boost/mpi/python*
if(component STREQUAL "mpi_python")
set(_boost_DEPS "python")
set(library_component TRUE)
- file(GLOB_RECURSE _boost_unprocessed_headers
- RELATIVE "${includedir}"
- "${includedir}/boost/mpi/python/*")
- list(INSERT _boost_unprocessed_headers 0 "${includedir}/boost/mpi/python.hpp")
+ set(_boost_unprocessed_headers ${_boost_mpi_python_headers})
+ # Special-case since it is part of python; look only in boost/python/numpy*
+ elseif(component STREQUAL "numpy")
+ set(_boost_DEPS "python")
+ set(library_component TRUE)
+ set(_boost_unprocessed_headers ${_boost_python_numpy_headers})
# Special-case since it is a serialization variant; look in boost/serialization
elseif(component STREQUAL "wserialization")
set(library_component TRUE)
file(GLOB_RECURSE _boost_unprocessed_headers
RELATIVE "${includedir}"
"${includedir}/boost/serialization/*")
- list(INSERT _boost_unprocessed_headers 0 "${includedir}/boost/serialization.hpp")
+ list(INSERT _boost_unprocessed_headers 0 "boost/serialization.hpp")
# Not really a library in its own right, but treat it as one
elseif(component STREQUAL "math")
set(library_component TRUE)
file(GLOB_RECURSE _boost_unprocessed_headers
RELATIVE "${includedir}"
"${includedir}/boost/math/*")
- list(INSERT _boost_unprocessed_headers 0 "${includedir}/boost/math.hpp")
+ list(INSERT _boost_unprocessed_headers 0 "boost/math.hpp")
# Single test header
elseif(component STREQUAL "unit_test_framework")
set(library_component TRUE)
@@ -79,7 +90,8 @@ function(_Boost_FIND_COMPONENT_DEPENDENCIES component includedir _ret_libs)
file(GLOB_RECURSE _boost_unprocessed_headers
RELATIVE "${includedir}"
"${includedir}/boost/${component}/*")
- list(INSERT _boost_unprocessed_headers 0 "${includedir}/boost/${component}.hpp")
+ list(INSERT _boost_unprocessed_headers 0 "boost/${component}.hpp")
+ list(REMOVE_ITEM _boost_unprocessed_headers ${_boost_mpi_python_headers} ${_boost_python_numpy_headers})
endif()
while(_boost_unprocessed_headers)
@@ -102,6 +114,8 @@ function(_Boost_FIND_COMPONENT_DEPENDENCIES component includedir _ret_libs)
foreach(line ${_boost_header_deps})
string(REGEX REPLACE "^[ \t]*#[ \t]*define[ \t][ \t]*BOOST_LIB_NAME[ \t][ \t]*boost_([^ \t][^ \t]*).*" "\\1" _boost_component_match "${line}")
+ string(REPLACE "python3" "python" _boost_component_match "${_boost_component_match}")
+ string(REPLACE "numpy3" "numpy" _boost_component_match "${_boost_component_match}")
list(FIND _boost_DEPS "${_boost_component_match}" _boost_dep_found)
if(_boost_component_match STREQUAL "bzip2" OR
_boost_component_match STREQUAL "zlib")
@@ -119,6 +133,12 @@ function(_Boost_FIND_COMPONENT_DEPENDENCIES component includedir _ret_libs)
# hard dependency (handle as special-case for mpi_python).
continue()
endif()
+ if(component STREQUAL "python" AND
+ boost_component_match STREQUAL "numpy")
+ # Optional python dependency; skip to avoid making it a
+ # hard dependency (handle as special-case for numpy).
+ continue()
+ endif()
if (_boost_dep_found EQUAL -1 AND
NOT "${_boost_component_match}" STREQUAL "${component}")
list(APPEND _boost_DEPS "${_boost_component_match}")
@@ -168,6 +188,11 @@ if(IS_DIRECTORY "${BOOST_DIR}/boost/mpi" AND
IS_DIRECTORY "${BOOST_DIR}/boost/python")
list(APPEND boost_components "mpi_python")
endif()
+# Special-case numpy, since it's a part of python
+if(IS_DIRECTORY "${BOOST_DIR}/boost/python" AND
+ IS_DIRECTORY "${BOOST_DIR}/boost/python/numpy")
+ list(APPEND boost_components "numpy")
+endif()
# Special-case wserialization, which is a variant of serialization
if(IS_DIRECTORY "${BOOST_DIR}/boost/serialization")
list(APPEND boost_components "wserialization")