Skip to content

Commit 5288c27

Browse files
committed
fixing cmake and externals
1 parent dcb5ecc commit 5288c27

21 files changed

+186
-140
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,4 @@ cmake
3333

3434
# Sphinx builds
3535
docs/_build/
36+
/build

Superbuild/BoostExternal.cmake

Lines changed: 50 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -24,103 +24,65 @@
2424
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
2525
# DEALINGS IN THE SOFTWARE.
2626

27-
# Borrowed CMake code from the MaidSafe Boost CMake build
28-
# found at https://github.com/maidsafe/MaidSafe/blob/master/cmake_modules/add_boost.cmake
29-
# and code borrowed from ITK4 HDFMacros.cmake
3027

31-
SET_PROPERTY(DIRECTORY PROPERTY "EP_BASE" ${ep_base})
28+
set(_boost_git_url "https://github.com/CIBC-Internal/boost.git")
29+
set(_boost_git_tag "v1.90.0")
3230

33-
# disable auto linking
34-
# also set in Seg3D?
35-
SET(boost_CXX_Flags "-DBOOST_ALL_NO_LIB=1")
36-
IF(APPLE)
37-
LIST(APPEND boost_CXX_Flag "-DBOOST_LCAST_NO_WCHAR_T" "-DBOOST_THREAD_DONT_USE_ATOMIC")
38-
ENDIF()
39-
IF(WIN32)
40-
LIST(APPEND boost_CXX_Flag "-DBOOST_BIND_ENABLE_STDCALL")
41-
ENDIF()
42-
43-
SET( boost_DEPENDENCIES )
44-
45-
# explicitly set library list
46-
SET(boost_Libraries
47-
"atomic"
48-
"chrono"
49-
"date_time"
50-
"exception"
51-
"filesystem"
52-
"program_options"
53-
"regex"
54-
"serialization"
55-
"system"
56-
"thread"
57-
CACHE INTERNAL "Boost library name.")
58-
59-
IF(BUILD_WITH_PYTHON)
60-
ADD_DEFINITIONS(-DBOOST_PYTHON_STATIC_LIB=1)
61-
LIST(APPEND boost_Libraries python)
62-
LIST(APPEND boost_DEPENDENCIES Python_external)
63-
LIST(APPEND boost_CXX_Flag "-DBOOST_PYTHON_STATIC_MODULE" "-DBOOST_PYTHON_STATIC_LIB")
64-
ENDIF()
65-
66-
# for travis clang builds--need a narrower test
67-
IF(UNIX)
68-
ADD_DEFINITIONS(-DBOOST_NO_CXX11_ALLOCATOR)
69-
ENDIF()
70-
71-
SET(boost_GIT_TAG "origin/v1.75.0")
72-
73-
# TODO: set up 64-bit build detection
74-
# Boost Jam needs to have 64-bit build explicitly configured
75-
IF(WIN32)
76-
SET(FORCE_64BIT_BUILD ON)
77-
ENDIF()
78-
79-
80-
SET(boost_GIT_URL "https://github.com/CIBC-Internal/boost.git")
81-
82-
# TODO: fix install step
83-
#
84-
# If CMake ever allows overriding the checkout command or adding flags,
85-
# git checkout -q will silence message about detached head (harmless).
8631
ExternalProject_Add(Boost_external
87-
DEPENDS ${boost_DEPENDENCIES}
88-
GIT_REPOSITORY ${boost_GIT_URL}
89-
GIT_TAG ${boost_GIT_TAG}
90-
BUILD_IN_SOURCE ON
91-
PATCH_COMMAND ""
92-
INSTALL_COMMAND ""
93-
CMAKE_CACHE_ARGS
94-
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE}
95-
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
96-
-DBUILD_PYTHON:BOOL=${BUILD_WITH_PYTHON}
97-
-DPython_DIR:PATH=${Python_DIR}
98-
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
99-
-DFORCE_64BIT_BUILD:BOOL=${FORCE_64BIT_BUILD}
100-
-DSCI_BOOST_LIBRARIES:STATIC=${boost_Libraries}
101-
-DSCI_BOOST_CXX_FLAGS:STRING=${boost_CXX_Flags}
32+
GIT_REPOSITORY ${_boost_git_url}
33+
GIT_TAG ${_boost_git_tag}
34+
GIT_SHALLOW FALSE
35+
GIT_PROGRESS TRUE
36+
37+
# Ensure all modular libraries are present
38+
UPDATE_COMMAND ${CMAKE_COMMAND} -E chdir <SOURCE_DIR> git submodule update --init --recursive
39+
40+
# Build out of source (let ExternalProject choose dirs)
41+
BUILD_IN_SOURCE OFF
42+
43+
# Configure using Boost's official CMake support (tools/cmake in the repo)
44+
CONFIGURE_COMMAND
45+
${CMAKE_COMMAND}
46+
-S <SOURCE_DIR>
47+
-B <BINARY_DIR>
48+
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
49+
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
50+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
51+
-DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE}
52+
-DSCI_BOOST_CXX_FLAGS=${boost_CXX_Flags}
53+
# Optional: build static by default
54+
# -DBUILD_SHARED_LIBS=OFF
55+
# Optional: enforce Boost.Python if your build requires it
56+
# -DBoost_ENABLE_PYTHON=$<IF:${BUILD_WITH_PYTHON},ON,OFF>
57+
58+
BUILD_COMMAND
59+
${CMAKE_COMMAND} --build <BINARY_DIR> --config ${CMAKE_BUILD_TYPE} --parallel
60+
61+
INSTALL_COMMAND
62+
${CMAKE_COMMAND} --build <BINARY_DIR> --target install --config ${CMAKE_BUILD_TYPE}
10263
)
10364

10465
ExternalProject_Get_Property(Boost_external INSTALL_DIR)
10566
ExternalProject_Get_Property(Boost_external SOURCE_DIR)
106-
SET(SCI_BOOST_INCLUDE ${SOURCE_DIR})
107-
SET(SCI_BOOST_LIBRARY_DIR ${SOURCE_DIR}/lib)
108-
SET(SCI_BOOST_USE_FILE ${INSTALL_DIR}/UseBoost.cmake)
109-
110-
SET(BOOST_PREFIX "boost_")
111-
SET(THREAD_POSTFIX "-mt")
11267

113-
SET(SCI_BOOST_LIBRARY)
68+
# Export the *installed* paths (not the source tree)
69+
set(SCI_BOOST_INCLUDE ${INSTALL_DIR}/include)
70+
set(SCI_BOOST_LIBRARY_DIR ${INSTALL_DIR}/lib)
71+
set(SCI_BOOST_USE_FILE ${INSTALL_DIR}/UseBoost.cmake)
11472

115-
FOREACH(lib ${boost_Libraries})
116-
SET(LIB_NAME "${BOOST_PREFIX}${lib}${THREAD_POSTFIX}")
117-
LIST(APPEND SCI_BOOST_LIBRARY ${LIB_NAME})
118-
ENDFOREACH()
73+
set(BOOST_PREFIX "boost_")
74+
set(THREAD_POSTFIX "-mt")
11975

120-
# Boost is special case - normally this should be handled in external library repo
121-
CONFIGURE_FILE(${SUPERBUILD_DIR}/BoostConfig.cmake.in ${INSTALL_DIR}/BoostConfig.cmake @ONLY)
122-
CONFIGURE_FILE(${SUPERBUILD_DIR}/UseBoost.cmake ${SCI_BOOST_USE_FILE} COPYONLY)
76+
set(SCI_BOOST_LIBRARY)
77+
foreach(lib ${boost_Libraries})
78+
set(LIB_NAME "${BOOST_PREFIX}${lib}${THREAD_POSTFIX}")
79+
list(APPEND SCI_BOOST_LIBRARY ${LIB_NAME})
80+
endforeach()
12381

124-
SET(Boost_DIR ${INSTALL_DIR} CACHE PATH "")
82+
# If you still need your custom config/use files for SCIRun, keep these lines;
83+
# otherwise consider relying on Boost's installed BoostConfig.cmake.
84+
configure_file(${SUPERBUILD_DIR}/BoostConfig.cmake.in ${INSTALL_DIR}/BoostConfig.cmake @ONLY)
85+
configure_file(${SUPERBUILD_DIR}/UseBoost.cmake ${SCI_BOOST_USE_FILE} COPYONLY)
12586

126-
MESSAGE(STATUS "Boost_DIR: ${Boost_DIR}")
87+
set(Boost_DIR ${INSTALL_DIR} CACHE PATH "")
88+
message(STATUS "Boost_DIR: ${Boost_DIR}")

Superbuild/CMakeLists.txt

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,7 @@
2424
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
2525
# DEALINGS IN THE SOFTWARE.
2626

27-
CMAKE_MINIMUM_REQUIRED(VERSION 3.16 FATAL_ERROR)
28-
29-
IF(POLICY CMP0043)
30-
CMAKE_POLICY(SET CMP0043 OLD)
31-
ENDIF()
32-
IF(POLICY CMP0054)
33-
CMAKE_POLICY(SET CMP0054 NEW)
34-
ENDIF()
27+
CMAKE_MINIMUM_REQUIRED(VERSION 3.20)
3528

3629
PROJECT(Superbuild)
3730

Superbuild/Cleaver2External.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ ExternalProject_Add(Cleaver2_external
3636
INSTALL_DIR ""
3737
INSTALL_COMMAND ""
3838
CMAKE_CACHE_ARGS
39+
-DCMAKE_POLICY_VERSION_MINIMUM:STRING=3.5
3940
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE}
4041
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
4142
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON

Superbuild/CtkExternal.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
SET_PROPERTY(DIRECTORY PROPERTY "EP_BASE" ${ep_base})
2828

2929
SET(CTK_CACHE_ARGS
30+
"-DCMAKE_POLICY_VERSION_MINIMUM:STRING=3.5"
3031
"-DCMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE}"
3132
"-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}"
3233
"-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON"

Superbuild/FreetypeExternal.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ ExternalProject_Add(Freetype_external
3636
INSTALL_DIR ""
3737
INSTALL_COMMAND ""
3838
CMAKE_CACHE_ARGS
39+
-DCMAKE_POLICY_VERSION_MINIMUM:STRING=3.5
3940
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE}
4041
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
4142
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON

Superbuild/GLMExternal.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ ExternalProject_Add(GLM_external
3535
BUILD_COMMAND ""
3636
INSTALL_COMMAND ""
3737
CMAKE_CACHE_ARGS
38+
-DCMAKE_POLICY_VERSION_MINIMUM:STRING=3.5
3839
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE}
3940
-DGLM_FORCE_CXX03:BOOL=ON
4041
-DGLM_FORCE_RADIANS:BOOL=ON

Superbuild/GlewExternal.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ ExternalProject_Add(Glew_external
4141
INSTALL_DIR ""
4242
INSTALL_COMMAND ""
4343
CMAKE_CACHE_ARGS
44+
-DCMAKE_POLICY_VERSION_MINIMUM:STRING=3.5
4445
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE}
4546
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
4647
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON

Superbuild/GoogleTestExternal.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
SET_PROPERTY(DIRECTORY PROPERTY "EP_BASE" ${ep_base})
2828

2929
SET(GTEST_CACHE_ARGS
30+
"-DCMAKE_POLICY_VERSION_MINIMUM:STRING=3.5"
3031
"-DCMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE}"
3132
"-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}"
3233
"-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON"

Superbuild/LibPNGExternal.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ ExternalProject_Add(LibPNG_external
3838
INSTALL_DIR ""
3939
INSTALL_COMMAND ""
4040
CMAKE_CACHE_ARGS
41+
-DCMAKE_POLICY_VERSION_MINIMUM:STRING=3.5
4142
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE}
4243
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
4344
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON

0 commit comments

Comments
 (0)