-
Notifications
You must be signed in to change notification settings - Fork 68
/
Copy pathexternal.cmake
55 lines (51 loc) · 2.89 KB
/
external.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
include(ExternalProject)
set(EXTERNAL_BASE_DIR ${CMAKE_BINARY_DIR}/external CACHE STRING "External base directory")
ExternalProject_Add(
zlib_src
PREFIX ${EXTERNAL_BASE_DIR}
GIT_REPOSITORY https://github.com/madler/zlib.git
GIT_TAG 51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf # v1.3.1
GIT_SHALLOW True
UPDATE_DISCONNECTED True
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTERNAL_BASE_DIR} -DCMAKE_BUILD_TYPE=Release -DCMAKE_MSVC_RUNTIME_LIBRARY=${CMAKE_MSVC_RUNTIME_LIBRARY} -DZLIB_BUILD_MINIZIP=1
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config Release
BUILD_BYPRODUCTS ${EXTERNAL_BASE_DIR}/lib/libz.a
INSTALL_COMMAND ${CMAKE_COMMAND} --install . --config Release
)
add_library(zlib STATIC IMPORTED)
set_target_properties(zlib PROPERTIES IMPORTED_LOCATION ${EXTERNAL_BASE_DIR}/lib/libz.a)
add_dependencies(zlib zlib_src)
set(ZLIB_SRC_DIR ${EXTERNAL_BASE_DIR}/src/zlib_src)
set_source_files_properties(${ZLIB_SRC_DIR}/contrib/minizip/ioapi.c PROPERTIES GENERATED 1)
set_source_files_properties(${ZLIB_SRC_DIR}/contrib/minizip/unzip.c PROPERTIES GENERATED 1)
set_source_files_properties(${ZLIB_SRC_DIR}/contrib/minizip/iowin32.c PROPERTIES GENERATED 1)
ExternalProject_Add(
xml2_src
PREFIX ${EXTERNAL_BASE_DIR}
GIT_REPOSITORY https://github.com/GNOME/libxml2.git
GIT_TAG 60d3056c97067e6cb2125284878ed7c99c90ed81 # v2.13.4
GIT_SHALLOW True
UPDATE_DISCONNECTED True
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTERNAL_BASE_DIR} -DCMAKE_BUILD_TYPE=Release -DCMAKE_MSVC_RUNTIME_LIBRARY=${CMAKE_MSVC_RUNTIME_LIBRARY} -DBUILD_SHARED_LIBS=OFF -DLIBXML2_WITH_ICONV=OFF -DLIBXML2_WITH_LZMA=OFF -DLIBXML2_WITH_PYTHON=OFF -DLIBXML2_WITH_ZLIB=OFF -DLIBXML2_WITH_TESTS=OFF
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config Release
BUILD_BYPRODUCTS ${EXTERNAL_BASE_DIR}/lib/libxml2.a
INSTALL_COMMAND ${CMAKE_COMMAND} --install . --config Release
)
add_library(xml2 STATIC IMPORTED)
set_target_properties(xml2 PROPERTIES IMPORTED_LOCATION ${EXTERNAL_BASE_DIR}/lib/libxml2.a)
add_dependencies(xml2 xml2_src)
ExternalProject_Add(
cvcode_src
PREFIX ${EXTERNAL_BASE_DIR}
GIT_REPOSITORY https://github.com/LLNL/sundials.git
GIT_TAG c28eaa3764a03705d61decb6025b409360e9d53f # v7.1.1
GIT_SHALLOW True
UPDATE_DISCONNECTED True
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTERNAL_BASE_DIR} -DCMAKE_BUILD_TYPE=Release -DCMAKE_MSVC_RUNTIME_LIBRARY=${CMAKE_MSVC_RUNTIME_LIBRARY} -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF -DEXAMPLES_INSTALL=OFF -DSUNDIALS_ENABLE_ERROR_CHECKS=OFF
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config Release
BUILD_BYPRODUCTS ${EXTERNAL_BASE_DIR}/lib/libsundials_cvode.a ${EXTERNAL_BASE_DIR}/lib/libsundials_core.a
INSTALL_COMMAND ${CMAKE_COMMAND} --install . --config Release
)
add_library(cvcode STATIC IMPORTED)
set_target_properties(cvcode PROPERTIES IMPORTED_LOCATION ${EXTERNAL_BASE_DIR}/lib/libsundials_core.a)
add_dependencies(cvcode cvcode_src)