externalproject_add(<name> [<option>...])
externalproject_add(<name> [<option>...])
ExternalProject_Add(
mir2x_data
GIT_REPOSITORY "https://github.com/etorth/mir2x_data.git"
GIT_TAG "main"
SOURCE_DIR "${MIR2X_3RD_PARTY_DIR}/mir2x_data"
UPDATE_COMMAND ""
PATCH_COMMAND ""
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)
ExternalProject_Add(\n"
" Hunter\n"
" URL\n"
" \"${HUNTER_GATE_URL}\"\n"
" URL_HASH\n"
" SHA1=${HUNTER_GATE_SHA1}\n"
" DOWNLOAD_DIR\n"
" \"${dir}\"\n"
" TLS_VERIFY\n"
" ${HUNTER_TLS_VERIFY}\n"
" SOURCE_DIR\n"
" \"${dir}/Unpacked\"\n"
" CONFIGURE_COMMAND\n"
" \"\"\n"
" BUILD_COMMAND\n"
" \"\"\n"
" INSTALL_COMMAND\n"
" \"\"\n"
")
ExternalProject_Add(
NodeEditor
PREFIX "${NodeEditor_DIR}"
LOG_DOWNLOAD TRUE
LOG_UPDATE TRUE
LOG_CONFIGURE TRUE
LOG_BUILD TRUE
LOG_INSTALL TRUE
SOURCE_DIR "${NodeEditor_DIR}"
BINARY_DIR "${NodeEditor_DIR}_build"
STAMP_DIR "${NodeEditor_DIR}_stamp"
TMP_DIR "${NodeEditor_DIR}_tmp"
#--Download step--------------
GIT_REPOSITORY ${NodeEditor_GIT_REPOSITORY}
GIT_TAG ${NodeEditor_GIT_TAG}
#--Configure step-------------
CMAKE_ARGS
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
-DCMAKE_BUILD_TYPE=Release
-DBUILD_EXAMPLES=OFF
-DQt5_DIR=${Qt5_DIR}
-DCMAKE_INSTALL_PREFIX=${NodeEditor_DIR}_install
-DNODE_EDITOR_STATIC=
#--Build step-----------------
#BUILD_ALWAYS 0
#--Install step-----------------
INSTALL_DIR=${NodeEditor_DIR}_install
)
ExternalProject_Add(${ZLIB_TARGET}
URL https://www.zlib.net/zlib-1.3.1.tar.gz
URL_HASH SHA256=9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23
DOWNLOAD_DIR ${BUILD_DIR}/download/zlib
PREFIX ${BUILD_DIR}
BUILD_IN_SOURCE 0
BUILD_ALWAYS 0
UPDATE_COMMAND ""
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/zlib
BINARY_DIR ${BUILD_DIR}/zlib_build
INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
CONFIGURE_COMMAND
${CMAKE_COMMAND}
${CMAKE_CORE_BUILD_FLAGS}
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
<SOURCE_DIR>
BUILD_COMMAND $(MAKE) -j${AV_BUILD_DEPENDENCIES_PARALLEL}
)
ExternalProject_Add(
dep_${projectname}
INSTALL_DIR ${${PROJECT_NAME}_DEP_INSTALL_PREFIX}
DOWNLOAD_DIR ${${PROJECT_NAME}_DEP_DOWNLOAD_DIR}/${projectname}
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/builds/${projectname}
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX:STRING=${${PROJECT_NAME}_DEP_INSTALL_PREFIX}
-DCMAKE_MODULE_PATH:STRING=${CMAKE_MODULE_PATH}
-DCMAKE_PREFIX_PATH:STRING=${${PROJECT_NAME}_DEP_INSTALL_PREFIX}
-DCMAKE_DEBUG_POSTFIX:STRING=${CMAKE_DEBUG_POSTFIX}
-DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_FLAGS_${_build_type_upper}:STRING=${CMAKE_CXX_FLAGS_${_build_type_upper}}
-DCMAKE_C_FLAGS_${_build_type_upper}:STRING=${CMAKE_C_FLAGS_${_build_type_upper}}
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
-DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
"${_configs_line}"
${DEP_CMAKE_OPTS}
${P_ARGS_CMAKE_ARGS}
${P_ARGS_UNPARSED_ARGUMENTS}
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} -- ${_build_j} ${_verbose_switch}
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}
)
ExternalProject_Add(${NAME}
PREFIX ${NAME}
SOURCE_DIR "${examples_dir}"
BINARY_DIR ${NAME}
STAMP_DIR ${NAME}/logs
INSTALL_COMMAND "" #Skip
LOG_CONFIGURE 1
CMAKE_CACHE_ARGS "-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}"
"-Dprotobuf_VERBOSE:BOOL=${protobuf_VERBOSE}"
${ARGN}
)
ExternalProject_Add(
dep_${projectname}
EXCLUDE_FROM_ALL ON
INSTALL_DIR ${DESTDIR}/usr/local
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/${projectname}
${_gen}
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}/usr/local
-DCMAKE_MODULE_PATH:STRING=${PROJECT_SOURCE_DIR}/../cmake/modules
-DCMAKE_PREFIX_PATH:STRING=${DESTDIR}/usr/local
-DCMAKE_DEBUG_POSTFIX:STRING=d
-DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
-DBUILD_SHARED_LIBS:BOOL=OFF
${_cmake_osx_arch}
"${_configs_line}"
${DEP_CMAKE_OPTS}
${P_ARGS_CMAKE_ARGS}
${P_ARGS_UNPARSED_ARGUMENTS}
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config Release -- ${_build_j}
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config Release
)
ExternalProject_Add(
dep_${projectname}
EXCLUDE_FROM_ALL ON
INSTALL_DIR ${DESTDIR}
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/${projectname}
${_gen}
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}
-DCMAKE_MODULE_PATH:STRING=${PROJECT_SOURCE_DIR}/../cmake/modules
-DCMAKE_PREFIX_PATH:STRING=${DESTDIR}
-DCMAKE_DEBUG_POSTFIX:STRING=d
-DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
-DBUILD_SHARED_LIBS:BOOL=OFF
${_cmake_osx_arch}
"${_configs_line}"
${DEP_CMAKE_OPTS}
${P_ARGS_CMAKE_ARGS}
${P_ARGS_UNPARSED_ARGUMENTS}
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config Release -- ${_build_j}
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config Release
)
ExternalProject_Add(
${LIBNAME}_download
PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/${LIBNAME}
GIT_REPOSITORY ${REPOSITORY}
# For shallow git clone (without downloading whole history) GIT_SHALLOW 1 For point at
# certain tag
GIT_TAG ${GIT_TAG}
# disables auto update on every build
UPDATE_DISCONNECTED 1
# disable following
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_DIR ""
INSTALL_COMMAND ""
)
ExternalProject_Add(\n"
" Hunter\n"
" URL\n"
" \"${HUNTER_GATE_URL}\"\n"
" URL_HASH\n"
" SHA1=${HUNTER_GATE_SHA1}\n"
" DOWNLOAD_DIR\n"
" \"${dir}\"\n"
" TLS_VERIFY\n"
" ${HUNTER_TLS_VERIFY}\n"
" SOURCE_DIR\n"
" \"${dir}/Unpacked\"\n"
" CONFIGURE_COMMAND\n"
" \"\"\n"
" BUILD_COMMAND\n"
" \"\"\n"
" INSTALL_COMMAND\n"
" \"\"\n"
")
ExternalProject_Add(
external_tbb
PREFIX tbb
URL https://github.com/nachovizzo/tbb/archive/refs/tags/tbbstatic.tar.gz
URL_HASH SHA256=db5ede77c4bd10ad12fab11ed38b7e8cf80aba85db16a57514073c383e6c8630
UPDATE_COMMAND ""
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
${ExternalProject_CMAKE_ARGS}
${ExternalProject_CMAKE_CXX_FLAGS}
# custom flags
-DTBB_BUILD_TBBMALLOC=ON
-DTBB_BUILD_SHARED=OFF
-DTBB_BUILD_STATIC=ON
-DTBB_BUILD_TESTS=OFF)
ExternalProject_Add(
gtest
URL https://github.com/google/googletest/archive/release-1.8.1.zip
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/gtest
# Disable install step
INSTALL_COMMAND ""
)
ExternalProject_Add(
qtlite
URL "${OVERTE_EXTERNAL_BUILD_ASSETS}/dependencies/qtlite/qt-lite-5.9.9-win-oct-15-2019.zip"
URL_HASH MD5=0176277bca37d219e83738caf3a698eb
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
LOG_DOWNLOAD 1
)
ExternalProject_Add(${proj}
${${proj}_EP_ARGS}
DOWNLOAD_COMMAND ""
INSTALL_COMMAND ""
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
BINARY_DIR ${EXTENSION_BUILD_SUBDIRECTORY}
CMAKE_CACHE_ARGS
# Compiler settings
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS:STRING=${ep_common_c_flags}
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
-DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}
-DCMAKE_CXX_STANDARD_REQUIRED:BOOL=${CMAKE_CXX_STANDARD_REQUIRED}
-DCMAKE_CXX_EXTENSIONS:BOOL=${CMAKE_CXX_EXTENSIONS}
# Output directories
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
# Packaging
-DMIDAS_PACKAGE_EMAIL:STRING=${MIDAS_PACKAGE_EMAIL}
-DMIDAS_PACKAGE_API_KEY:STRING=${MIDAS_PACKAGE_API_KEY}
# Superbuild
-D${EXTENSION_NAME}_SUPERBUILD:BOOL=OFF
-DEXTENSION_SUPERBUILD_BINARY_DIR:PATH=${${EXTENSION_NAME}_BINARY_DIR}
DEPENDS
${${proj}_DEPENDS}
)
ExternalProject_Add(
cmocka_cloned
GIT_REPOSITORY https://gitlab.com/cmocka/cmocka.git
GIT_TAG cmocka-1.1.5
SOURCE_DIR "${CMAKE_BINARY_DIR}/cmocka-src"
BINARY_DIR "${CMAKE_BINARY_DIR}/cmocka-build"
CMAKE_ARGS "${CMOCKA_ARGS}"
INSTALL_COMMAND ""
STEP_TARGETS build
EXCLUDE_FROM_ALL TRUE
)
ExternalProject_Add(PATCHELF
PREFIX "${PATCHELF_PREFIX_DIR}"
URL "http://nixos.org/releases/patchelf/patchelf-0.9/patchelf-0.9.tar.bz2"
URL_MD5 d02687629c7e1698a486a93a0d607947
DOWNLOAD_DIR "${DOWNLOAD_DIR}"
SOURCE_DIR "${PATCHELF_SOURCE_DIR}"
BINARY_DIR "${PATCHELF_SOURCE_DIR}"
INSTALL_DIR "${PATCHELF_INSTALL_DIR}"
STAMP_DIR "${PATCHELF_STAMP_DIR}"
TMP_DIR "${PATCHELF_TMP_DIR}"
CONFIGURE_COMMAND
${PATCHELF_ENV_COMMAND}
${PATCHELF_SOURCE_DIR}/configure
INSTALL_COMMAND ""
LOG_DOWNLOAD 1
LOG_CONFIGURE 1
LOG_BUILD 1
LOG_INSTALL 1
)
ExternalProject_Add(SDL2
URL ${SDL2_URL}
URL_MD5 ${SDL2_MD5}
INSTALL_DIR ${INSTALL_DIR}
# Only compile the shared lib
CMAKE_ARGS -SDL_SHARED=ON -DSDL_STATIC=OFF -DSDL_LDOPEN=ON -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
# Audio is for chumps
CMAKE_ARGS -DOSS=OFF -DALSA=OFF -DPULSEAUDIO=OFF -DSNDIO=OFF -DDSOUND=OFF -DDISKAUDIO=OFF -DDUMMYAUDIO=OFF
CMAKE_ARGS -DFUSIONSOUND=OFF
# Video is for suckers
CMAKE_ARGS -DX11_SHARED=ON -DVIDEO_WAYLAND=OFF -DVIDEO_MIR=OFF -DVIDEO_RPI=OFF -DVIDEO_OPENGLES=OFF -DDIRECTX=OFF
CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE})
ExternalProject_Add(${proj}
DEPENDS ${${LOCAL_PROJECT_NAME}_DEPENDENCIES}
DOWNLOAD_COMMAND ""
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
BINARY_DIR ${LOCAL_PROJECT_NAME}-build
CMAKE_GENERATOR ${gen}
CMAKE_ARGS
--no-warn-unused-cli # HACK Only expected variables should be passed down.
${CMAKE_OSX_EXTERNAL_PROJECT_ARGS}
${COMMON_EXTERNAL_PROJECT_ARGS}
-D${LOCAL_PROJECT_NAME}_SUPERBUILD:BOOL=OFF
-DCMAKE_GENERATOR_PLATFORM:STRING=${CMAKE_GENERATOR_PLATFORM}
INSTALL_COMMAND ""
)
ExternalProject_Add(ffmpeg_dl
PREFIX ${PROJECT_BINARY_DIR}/ffmpeg_dl
GIT_REPOSITORY "https://github.com/etternagame/ffmpeg.git"
GIT_PROGRESS TRUE
GIT_SHALLOW TRUE
GIT_TAG "n2.1.3"
BUILD_BYPRODUCTS ${FFMPEG_BUILD_LIBS}
SOURCE_DIR ${FFMPEG_ROOT}
BINARY_DIR ${FFMPEG_BIN}
CONFIGURE_COMMAND "${FFMPEG_CONFIGURE}"
BUILD_COMMAND make -j10
UPDATE_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND "")
ExternalProject_Add(i18n
GIT_REPOSITORY https://github.com/openchemistry/avogadro-i18n
SOURCE_DIR "${AvogadroApp_SOURCE_DIR}/../avogadro-i18n"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
ExternalProject_Add( ext_boost
DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
URL http://downloads.sourceforge.net/project/boost/boost/1.70.0/boost_1_70_0.tar.bz2
URL_MD5 242ecc63507711d6706b9b0c0d0c7d4f
CONFIGURE_COMMAND <SOURCE_DIR>/bootstrap.sh --prefix=${PREFIX_ext_boost} --with-libraries=system
BUILD_COMMAND <SOURCE_DIR>/b2 install
INSTALL_COMMAND ""
INSTALL_DIR ${PREFIX_ext_boost}
UPDATE_COMMAND ""
ALWAYS 0
BUILD_IN_SOURCE 1
)
ExternalProject_Add (
FREEGLUT-PRJ
URL https://github.com/FreeGLUTProject/freeglut/releases/download/v3.4.0/freeglut-3.4.0.tar.gz
URL_MD5 f1621464e6525d0368976870cab8f418
CMAKE_GENERATOR ${CMAKE_GENERATOR}
CMAKE_GENERATOR_TOOLSET ${CMAKE_GENERATOR_TOOLSET}
CMAKE_GENERATOR_PLATFORM ${CMAKE_GENERATOR_PLATFORM}
CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release
-DFREEGLUT_BUILD_SHARED_LIBS=OFF
-DFREEGLUT_BUILD_STATIC_LIBS=ON
-DFREEGLUT_BUILD_DEMOS=OFF
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/freeglut
# BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/freeglut-build
# BUILD_IN_SOURCE ON
# UPDATE_COMMAND ""
INSTALL_COMMAND ""
# CONFIGURE_COMMAND ""
# BUILD_COMMAND ""
)
ExternalProject_Add(Boost_Project
BUILD_IN_SOURCE 1
INSTALL_COMMAND ""
PREFIX "${BOOST_DIR}"
BUILD_IN_SOURCE 1
URL ${BOOST_URL}
URL_HASH ${BOOST_HASH}
UPDATE_COMMAND ""
PATCH_COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_LIST_DIR}/os.jam" "tools/build/src/util/os.jam"
CONFIGURE_COMMAND ${BOOST_BOOTSTRAP_COMMAND} --prefix=${BOOST_DIR}/lib
BUILD_COMMAND ${BOOST_B2_COMMAND} install -j8 -d0 --prefix=${BOOST_DIR} --with-filesystem --with-system --with-thread --with-serialization --with-date_time address-model=${BOOST_ADDRESS_MODEL} link=static runtime-link=shared ${BOOST_TOOLSET}
INSTALL_COMMAND ""
)
ExternalProject_Add (netgen_project
SOURCE_DIR ${PROJECT_SOURCE_DIR}/external_dependencies/netgen
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/netgen
CONFIGURE_COMMAND ""
LIST_SEPARATOR |
${SUBPROJECT_ARGS}
BUILD_COMMAND ${COMMON_BUILD_COMMAND}
CMAKE_ARGS
${NETGEN_CMAKE_ARGS}
${SUBPROJECT_CMAKE_ARGS}
INSTALL_COMMAND ""
)
ExternalProject_Add(
boost_${Component}
PREFIX ${CMAKE_BINARY_DIR}/${BoostFolderName}
SOURCE_DIR ${BoostSourceDir}
BINARY_DIR ${BoostSourceDir}
CONFIGURE_COMMAND ""
BUILD_COMMAND "${b2Args}" --with-${Component}
INSTALL_COMMAND ""
LOG_BUILD ON
)
ExternalProject_Add(libjpeg-src
GIT_REPOSITORY https://github.com/libjpeg-turbo/libjpeg-turbo.git
GIT_TAG 3.0.1
SOURCE_DIR "${libjpeg_dir}"
BINARY_DIR "${libjpeg_dir}"
CMAKE_ARGS "-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${CMAKE_TOOLCHAIN_FILE}"
"-DCMAKE_INSTALL_PREFIX=${libjpeg_dir}/install" # unused, have to specify
"-DCMAKE_C_FLAGS=${universal_cflags}"
"-DENABLE_SHARED=FALSE"
"-DWITH_TURBOJPEG=FALSE"
"-Wno-dev"
INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/include/jpeg/;
COMMAND ${CMAKE_COMMAND} -E copy ${libjpeg_dir}/jpeglib.h
${libjpeg_dir}/jerror.h
${libjpeg_dir}/jconfig.h
${libjpeg_dir}/jmorecfg.h
${libjpeg_dir}/jpegint.h
${CMAKE_BINARY_DIR}/include/jpeg/
BUILD_BYPRODUCTS "${libjpeg_dir}/${libjpeg_binary}"
"${CMAKE_BINARY_DIR}/include/jpeg/jpeglib.h"
"${CMAKE_BINARY_DIR}/include/jpeg/jerror.h"
USES_TERMINAL_DOWNLOAD TRUE
USES_TERMINAL_UPDATE TRUE
USES_TERMINAL_CONFIGURE TRUE
USES_TERMINAL_BUILD TRUE
UPDATE_DISCONNECTED TRUE
)
ExternalProject_Add(
extern_boost
DOWNLOAD_DIR ${THIRD_PARTY_PATH}
DOWNLOAD_COMMAND wget https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.gz -O boost_1_64_0.tar.gz
CONFIGURE_COMMAND cd ${THIRD_PARTY_PATH}/ && tar xzf boost_1_64_0.tar.gz && cd boost_1_64_0 &&
./bootstrap.sh --with-libraries=system,regex,filesystem,python,test,random --with-python=${PYTHON_CMD} --with-python-root=${PYTHON_INSTALL_DIR} --with-python-version=2.7
BUILD_COMMAND cd ${THIRD_PARTY_PATH}/boost_1_64_0 && ./b2 cxxflags=-fPIC --with-system --with-regex --with-filesystem --with-test --with-random --with-python include=${PYTHON_INCLUDE_DIR}/python2.7
INSTALL_COMMAND rm -rf ./include/boost && cd ${THIRD_PARTY_PATH} && cp -r boost_1_64_0/boost ./include/
)
ExternalProject_Add(
nested_windows
PREFIX ${windows_prefix}
SOURCE_DIR ${CMAKE_SOURCE_DIR}
CMAKE_ARGS
-DBUILD_LINUX_MIDDLEWARE=OFF
"-DBUILD_WINDOWS_MIDDLEWARE_EXE=${BUILD_WINDOWS_MIDDLEWARE_EXE}"
"-DBUILD_WINDOWS_MIDDLEWARE_LIB=${BUILD_WINDOWS_MIDDLEWARE_LIB}"
"-DCMAKE_BUILD_TYPE=$<CONFIG>"
"-DCMAKE_INSTALL_PREFIX=${windows_install_dir}"
"-DCMAKE_TOOLCHAIN_FILE=${CMAKE_SOURCE_DIR}/cmake/toolchain-mingw64.cmake"
$<$<BOOL:BUILD_WINDOWS_MIDDLEWARE_EXE>:-DWINDOWS_MIDDLEWARE_EXE_COMPONENT=nested-windows>
$<$<BOOL:BUILD_WINDOWS_MIDDLEWARE_LIB>:-DWINDOWS_MIDDLEWARE_LIB_COMPONENT=nested-windows>
"-DBUILD_TESTS=${BUILD_TESTS}"
# Reuse the 3P source trees we've already downloaded in the nested
# build.
"-Dfmt_POPULATED=${fmt_POPULATED}"
"-Dfmt_SOURCE_DIR=${fmt_SOURCE_DIR}"
"-Dfmt_BINARY_DIR=<BINARY_DIR>/_deps/fmt-build"
"-Dspdlog_POPULATED=${spdlog_POPULATED}"
"-Dspdlog_SOURCE_DIR=${spdlog_SOURCE_DIR}"
"-Dspdlog_BINARY_DIR=<BINARY_DIR>/_deps/spdlog-build"
"-Dgoogletest_POPULATED=${googletest_POPULATED}"
"-Dgoogletest_SOURCE_DIR=${googletest_SOURCE_DIR}"
"-Dgoogletest_BINARY_DIR=<BINARY_DIR>/_deps/googletest-build"
BUILD_ALWAYS ON
)
ExternalProject_Add(nvshmem_device_project
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/device
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/device
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DNVSHMEM_PREFIX=${NVSHMEM_PREFIX}
-DNVSHMEM_DEBUG=${NVSHMEM_DEBUG}
-DNVSHMEM_DEVICELIB_CUDA_HOME=${NVSHMEM_DEVICELIB_CUDA_HOME}
-DNVSHMEM_ENABLE_ALL_DEVICE_INLINING=${NVSHMEM_ENABLE_ALL_DEVICE_INLINING}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CUDA_HOST_COMPILER=${CMAKE_CUDA_HOST_COMPILER}
-DPROJECT_VERSION=${PROJECT_VERSION}
$ENV{CMAKE_CCACHE_FLAGS}
CMAKE_CACHE_ARGS ${my_cmake_cache_args}
STEP_TARGETS build install
BUILD_ALWAYS TRUE
BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/lib/libnvshmem_device.a
)
ExternalProject_Add(
nccl_stub
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/nccl_stub"
BUILD_COMMAND ${CMAKE_COMMAND} --build .
INSTALL_COMMAND "")
ExternalProject_Add(avro-c
URL ${AVRO_C_URL}
URL_HASH SHA256=50ceefe582193ef8a92a8891bac1520df778f5c260f2ba68f4c9ae41417e3777
SOURCE_DIR ${CMAKE_BINARY_DIR}/avro-c/
PATCH_COMMAND sed -i -e "s/find_package(Snappy)//" -e "s/add_subdirectory(examples)//" -e "s/add_subdirectory(tests)//" lang/c/CMakeLists.txt
SOURCE_SUBDIR lang/c/
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/avro-c/install
-DCMAKE_C_FLAGS=-fPIC
-DCMAKE_CXX_FLAGS=-fPIC
-DJANSSON_FOUND=Y -DJANSSON_INCLUDE_DIRS=${JANSSON_INCLUDE_DIR}
-DJANSSON_LIBRARY_DIRS=${JANSSON_LIBRARY_DIR}
-DJANSSON_LIBRARIES=${JANSSON_LIBRARIES}
BINARY_DIR ${CMAKE_BINARY_DIR}/avro-c/
INSTALL_DIR ${CMAKE_BINARY_DIR}/avro-c/install
UPDATE_COMMAND ""
LOG_OUTPUT_ON_FAILURE 1
LOG_DOWNLOAD 1
LOG_UPDATE 1
LOG_CONFIGURE 1
LOG_BUILD 1
LOG_INSTALL 1)
ExternalProject_Add(${name}
PREFIX ${prefix}
GIT_REPOSITORY ${url}
GIT_TAG ${tag}
GIT_CONFIG "http.sslverify=false"
GIT_PROGRESS 1
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
LOG_DOWNLOAD ON)
ExternalProject_Add(volk_gnsssdr_module
PREFIX ${GNSSSDR_BINARY_DIR}/volk_gnsssdr_module
SOURCE_DIR ${GNSSSDR_SOURCE_DIR}/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr
BINARY_DIR ${GNSSSDR_BINARY_DIR}/volk_gnsssdr_module/build
CMAKE_ARGS ${VOLK_GNSSSDR_CMAKE_ARGS}
-DCMAKE_BUILD_TYPE=$<$<CONFIG:None>:None>$<$<CONFIG:Debug>:Debug>$<$<CONFIG:Release>:Release>$<$<CONFIG:RelWithDebInfo>:RelWithDebInfo>$<$<CONFIG:MinSizeRel>:MinSizeRel>$<$<CONFIG:NoOptWithASM>:NoOptWithASM>$<$<CONFIG:Coverage>:Coverage>$<$<CONFIG:O2WithASM>:O2WithASM>$<$<CONFIG:O3WithASM>:O3WithASM>$<$<CONFIG:ASAN>:ASAN>
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
DOWNLOAD_COMMAND ""
UPDATE_COMMAND ""
PATCH_COMMAND ""
BUILD_COMMAND ${VOLK_GNSSSDR_BUILD_COMMAND}
INSTALL_DIR ${GNSSSDR_BINARY_DIR}/volk_gnsssdr_module/install
)
ExternalProject_Add(
faustlibs
PREFIX ""
GIT_REPOSITORY https://github.com/grame-cncm/faustlibraries
GIT_TAG 730eff6dc336973553829235e0b31b24c47a2f69
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
ExternalProject_Add(psi4-core
DEPENDS lapack_external
hdf5_external
ambit_external
bse_external
chemps2_external
cppe_external
dkh_external
ecpint_external
libefp_external
einsums_external
gau2grid_external
gdma_external
libint2_external
pcmsolver_external
ddx_external
pybind11_external
pylibefp_external
qcelemental_external
qcengine_external
qcmanybody_external
openorbitaloptimizer_external
optking_external
simint_external
libxc_external
mdi_external
brianqc_external
integratorxx_external
gauxc_external
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/psi4
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
-DCMAKE_CXX_STANDARD=${psi4_CXX_STANDARD}
-Dpsi4_CXX_STANDARD_Libint2=${psi4_CXX_STANDARD_Libint2}
-DCMAKE_CXX_STANDARD_REQUIRED=ON
-DCMAKE_CXX_EXTENSIONS=OFF
-DFORCE_PEDANTIC=${FORCE_PEDANTIC}
-DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT}
-DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE}
-DCMAKE_Fortran_COMPILER=${CMAKE_Fortran_COMPILER}
-DCMAKE_Fortran_FLAGS=${CMAKE_Fortran_FLAGS}
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
-DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR}
-DCMAKE_INSTALL_DATADIR=${CMAKE_INSTALL_DATADIR}
-DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR}
-Dpsi4_INSTALL_CMAKEDIR=${psi4_INSTALL_CMAKEDIR}
-DCMAKE_INSTALL_MESSAGE=${CMAKE_INSTALL_MESSAGE}
-DPYMOD_INSTALL_LIBDIR=${PYMOD_INSTALL_LIBDIR}
-DMAX_AM_ERI=${MAX_AM_ERI}
-DPython_EXECUTABLE=${Python_EXECUTABLE}
-DPython_INCLUDE_DIR=${Python_INCLUDE_DIRS}
-DPython_LIBRARY=${Python_LIBRARIES}
-DPython_NumPy_INCLUDE_DIR=${Python_NumPy_INCLUDE_DIR}
-DPSI4_ROOT=${CMAKE_CURRENT_SOURCE_DIR}
-DENABLE_ambit=${ENABLE_ambit}
-DENABLE_CheMPS2=${ENABLE_CheMPS2}
-DENABLE_cppe=${ENABLE_cppe}
-DENABLE_dkh=${ENABLE_dkh}
-DENABLE_IntegratorXX=${ENABLE_IntegratorXX}
-DENABLE_gauxc=${ENABLE_gauxc}
-DENABLE_ecpint=${ENABLE_ecpint}
-DENABLE_libefp=${ENABLE_libefp}
-DENABLE_Einsums=${ENABLE_Einsums}
-DENABLE_simint=${ENABLE_simint}
-DENABLE_gdma=${ENABLE_gdma}
-DENABLE_PCMSolver=${ENABLE_PCMSolver}
-DENABLE_ddx=${ENABLE_ddx}
-DENABLE_mdi=${ENABLE_mdi}
-DENABLE_BrianQC=${ENABLE_BrianQC}
-DENABLE_OpenOrbitalOptimizer=${ENABLE_OpenOrbitalOptimizer}
-DENABLE_OPENMP=${ENABLE_OPENMP}
-DTargetLAPACK_DIR=${TargetLAPACK_DIR}
-DTargetHDF5_DIR=${TargetHDF5_DIR}
-DEigen3_DIR=${Eigen3_DIR}
-Dambit_DIR=${ambit_DIR}
-DCheMPS2_DIR=${CheMPS2_DIR}
-Ddkh_DIR=${dkh_DIR}
-Decpint_DIR=${ecpint_DIR}
-Dlibefp_DIR=${libefp_DIR}
-DEinsums_DIR=${Einsums_DIR}
-Dgau2grid_DIR=${gau2grid_DIR}
-Dgdma_DIR=${gdma_DIR}
-DLibint2_DIR=${Libint2_DIR}
-DOpenOrbitalOptimizer_DIR=${OpenOrbitalOptimizer_DIR}
-DPCMSolver_DIR=${PCMSolver_DIR}
-Dmdi_DIR=${mdi_DIR}
-Dpybind11_DIR=${pybind11_DIR}
-DIntegratorXX_DIR=${IntegratorXX_DIR}
-Dgauxc_DIR=${gauxc_DIR}
-Dpylibefp_DIR=${pylibefp_DIR}
-Dsimint_DIR=${simint_DIR}
-DLibxc_DIR=${Libxc_DIR}
-DBrianQC_DIR=${BrianQC_DIR}
-DFortran_ENABLED=${Fortran_ENABLED}
-DLIBC_INTERJECT=${LIBC_INTERJECT}
-DRESTRICT_KEYWORD=${RESTRICT_KEYWORD}
-DFC_SYMBOL=${FC_SYMBOL}
-DOpenMP_LIBRARY_DIRS=${OpenMP_LIBRARY_DIRS}
-DOpenMP_C_FLAGS=${OpenMP_C_FLAGS}
-DOpenMP_CXX_FLAGS=${OpenMP_CXX_FLAGS}
-DOpenMP_omp_LIBRARY=${OpenMP_omp_LIBRARY}
-DOpenMP_gomp_LIBRARY=${OpenMP_gomp_LIBRARY}
-DOpenMP_libiomp5md_LIBRARY=${OpenMP_libiomp5md_LIBRARY}
-DOpenMP_pthread_LIBRARY=${OpenMP_pthread_LIBRARY}
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
-DENABLE_CYTHONIZE=${ENABLE_CYTHONIZE}
-Dpsi4_SHGSHELL_ORDERING=${psi4_SHGSHELL_ORDERING}
CMAKE_CACHE_ARGS -DCMAKE_PREFIX_PATH:PATH=${_cmake_CMAKE_PREFIX_PATH}
-DCMAKE_C_COMPILER_ARG1:STRING=${CMAKE_C_COMPILER_ARG1}
-DCMAKE_CXX_COMPILER_ARG1:STRING=${CMAKE_CXX_COMPILER_ARG1}
-DCMAKE_Fortran_COMPILER_ARG1:STRING=${CMAKE_Fortran_COMPILER_ARG1}
# CMAKE_<lang>_COMPILER_ARG1 vars pass args thru when CMAKE_<lang>_COMPILER set as "compiler --vital-args"
-DOpenMP_C_LIB_NAMES:STRING=${OpenMP_C_LIB_NAMES}
-DOpenMP_CXX_LIB_NAMES:STRING=${OpenMP_CXX_LIB_NAMES}
USES_TERMINAL_BUILD 1
BUILD_ALWAYS 1)
ExternalProject_Add(
build32
SOURCE_DIR "${CMAKE_SOURCE_DIR}"
STAMP_DIR "${CMAKE_BINARY_DIR}/stamp32"
BINARY_DIR "${CMAKE_BINARY_DIR}/build32"
INSTALL_DIR "${CMAKE_BINARY_DIR}/install32"
BUILD_ALWAYS ON
EXCLUDE_FROM_ALL ON
DOWNLOAD_COMMAND ""
CONFIGURE_COMMAND
"${CMAKE_COMMAND}"
-S "<SOURCE_DIR>"
-B "<BINARY_DIR>"
-G "${CMAKE_GENERATOR}"
"-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}"
-A Win32
"-DBUILD_OUT_PREFIX=${BUILD_OUT_PREFIX}"
-DWITH_ASAN=${WITH_ASAN}
BUILD_COMMAND
"${CMAKE_COMMAND}"
--build "<BINARY_DIR>"
--config "$<CONFIG>"
--target build32
--parallel
INSTALL_COMMAND
""
)
externalproject_add(
googleapis_download
EXCLUDE_FROM_ALL ON
PREFIX "${EXTERNAL_GOOGLEAPIS_PREFIX}"
PATCH_COMMAND ""
DOWNLOAD_COMMAND ""
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
BUILD_BYPRODUCTS ${EXTERNAL_GOOGLEAPIS_BYPRODUCTS}
LOG_DOWNLOAD OFF)
ExternalProject_Add(
nvImageCodec
GIT_REPOSITORY https://github.com/NVIDIA/nvImageCodec.git
GIT_TAG v0.6.0
GIT_SUBMODULES "external/pybind11"
"external/NVTX"
"external/googletest"
"external/dlpack"
"external/boost/preprocessor"
CMAKE_ARGS "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}"
"-DCMAKE_INSTALL_PREFIX=${NVIMGCODEC_INSTALL_PREFIX}"
"-DBUILD_TEST=OFF"
"-DBUILD_SAMPLES=OFF"
"-DBUILD_PYTHON=OFF"
"-DBUILD_NVJPEG2K_EXT=${BUILD_NVJPEG2K}"
"-DWITH_DYNAMIC_NVJPEG2K=OFF"
"-DBUILD_NVJPEG_EXT=${BUILD_NVJPEG}"
"-DWITH_DYNAMIC_NVJPEG=${WITH_DYNAMIC_NVJPEG}"
"-DBUILD_NVTIFF_EXT=OFF"
"-DWITH_DYNAMIC_NVTIFF=OFF"
"-DBUILD_NVBMP_EXT=OFF"
"-DBUILD_NVPNM_EXT=OFF"
"-DBUILD_LIBJPEG_TURBO_EXT=${BUILD_LIBJPEG_TURBO}"
"-DBUILD_LIBTIFF_EXT=${BUILD_LIBTIFF}"
"-DBUILD_OPENCV_EXT=${BUILD_OPENCV}"
"-DBUILD_DOCS=OFF"
"${EXTRA_CMAKE_OPTIONS_LIST}"
PREFIX "${NVIMGCODEC_INSTALL_PREFIX}"
)
ExternalProject_Add(
tl-sbuild
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/tl-sbuild
DEPENDS ${TLRENDER_DEPS}
GIT_REPOSITORY ${TLRENDER_GIT_REPOSITORY}
GIT_TAG ${TLRENDER_GIT_TAG}
INSTALL_COMMAND ""
SOURCE_SUBDIR etc/SuperBuild
LIST_SEPARATOR |
CMAKE_ARGS ${TLRENDER_ARGS})
ExternalProject_Add(icu
URL https://github.com/unicode-org/icu/archive/refs/tags/release-70-1.zip
URL_HASH MD5=49d5e2e5bab93ae1a4b56e916150544c
SOURCE_DIR fetched/icu
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env ${ICU_ENV}
<SOURCE_DIR>/icu4c/source/configure --enable-static --disable-shared
--disable-tests --disable-samples --disable-icuio --disable-extras ${ICU_ADDITIONAL_OPTS}
BUILD_COMMAND make
INSTALL_COMMAND ""
)
ExternalProject_Add(
zlib
DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}
SOURCE_DIR ${ZLIB_SOURCE}
BINARY_DIR ${ZLIB_BUILD}
INSTALL_DIR ${ZLIB_INSTALL}
URL ${ZLIB_FILE}
# `ExternalProject_Add` currently doesn't support anything other than MD5.
URL_MD5 ${ZLIB_MD5}
PATCH_COMMAND ${CMAKE_COMMAND} -E remove "<SOURCE_DIR>/zconf.h"
CMAKE_CACHE_ARGS
-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}
-DCMAKE_BUILD_TYPE:STRING=${ZLIB_BUILD_TYPE}
${ZLIB_EXTRA_ARGS}
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
)
ExternalProject_Add(SpecFilePreview
BINARY_DIR "${CMAKE_BINARY_DIR}/SpecFilePreview"
URL ${CMAKE_CURRENT_SOURCE_DIR}/../macOsQuickLook/SpecFilePreview/SpecFilePreview/
CMAKE_GENERATOR "Unix Makefiles"
CMAKE_CACHE_ARGS -DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH}
#-DWt_INCLUDE_DIR:PATH=${Wt_INCLUDE_DIR}
#-DBOOST_ROOT:PATH=${Boost_INCLUDE_DIR}/..
-DInterSpec_BASE_DIR:PATH=${CMAKE_CURRENT_SOURCE_DIR}/../../
#-DBOOST_INCLUDEDIR:PATH=${Boost_INCLUDE_DIR}
-DCMAKE_BUILD_TYPE:STRING=RELEASE
-DSpecUtils_ENABLE_D3_CHART:BOOL=OFF
INSTALL_COMMAND ""
)
ExternalProject_Add(${LOCAL_PROJECT_NAME}
DEPENDS ${${LOCAL_PROJECT_NAME}_DEPENDENCIES}
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
BINARY_DIR ${LOCAL_PROJECT_NAME}-${CMAKE_BUILD_TYPE}-EP${EXTERNAL_PROJECT_BUILD_TYPE}-build
DOWNLOAD_COMMAND ""
UPDATE_COMMAND ""
CMAKE_GENERATOR ${gen}
CMAKE_ARGS
--no-warn-unused-cli # HACK Only expected variables should be passed down.
CMAKE_CACHE_ARGS
-D${LOCAL_PROJECT_NAME}_SUPERBUILD:BOOL=OFF # This must be here
-DBUILD_TESTING:BOOL=${${LOCAL_PROJECT_NAME}_BUILD_TESTING}
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DBUILD_EXAMPLES:BOOL=${${LOCAL_PROJECT_NAME}_BUILD_TESTING}
-DCMAKE_INSTALL_PREFIX_SET:BOOL=TRUE
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
${MYBRAINSTools_EP_ARGS} # This appends the "mark_as_superbuild" variables to the written out cache for clion use
#INSTALL_COMMAND ""
LOG_CONFIGURE ON
LOG_BUILD ON
)
ExternalProject_Add(gmp
SOURCE_DIR "${PROJECT_SOURCE_DIR}/external/gmp"
BINARY_DIR "${CMAKE_BINARY_DIR}/gmp"
CONFIGURE_COMMAND CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} ${PROJECT_SOURCE_DIR}/external/gmp/configure --enable-cxx --enable-shared=no --enable-static=yes --with-readline=no --with-pic --prefix=${CMAKE_BINARY_DIR}/gmp-prefix
DOWNLOAD_COMMAND ""
UPDATE_COMMAND ""
BUILD_BYPRODUCTS "${GMP_LIBRARY};${GMPXX_LIBRARY}"
#LOG_CONFIGURE 1
#LOG_OUTPUT_ON_FAILURE 1
)
ExternalProject_Add(
external_model_${MODEL}
PREFIX ""
SOURCE_DIR "${CMAKE_SOURCE_DIR}/models/model_${MODEL}/"
INSTALL_COMMAND ""
TEST_COMMAND ""
BUILD_ALWAYS 1
DEPENDS amici
CMAKE_ARGS "-DCMAKE_BUILD_TYPE=Debug"
BUILD_BYPRODUCTS "${MODEL_LIBRARY}")
ExternalProject_Add(Externals
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Externals
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/Externals-build
DOWNLOAD_COMMAND ""
UPDATE_COMMAND ""
INSTALL_COMMAND ""
CMAKE_CACHE_ARGS
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_MACOSX_RPATH:BOOL=ON
-DBUILD_TESTING:BOOL=OFF
-DBUILD_EXAMPLES:BOOL=OFF
-DSV_USE_MITK:BOOL=${SV_CMAKE_DOWLOAD_MITK_EXTERNAL}
-DSV_GIT_PULL_SUBMODULES:BOOL=${SV_GIT_PULL_SUBMODULES}
-DSV_EXTERNALS_VERSION_NUMBER:STRING=${SV_EXTERNALS_VERSION_NUMBER}
# External packages directories
-DSV_FREETYPE_DIR:PATH=${SV_FREETYPE_DIR}
-DSV_GDCM_DIR:PATH=${SV_GDCM_DIR}
-DSV_HDF5_DIR:PATH=${SV_HDF5_DIR}
-DSV_ITK_DIR:PATH=${SV_ITK_DIR}
-DSV_MMG_DIR:PATH=${SV_MMG_DIR}
-DSV_MITK_DIR:PATH=${SV_MITK_DIR}
-DSV_ML_DIR:PATH=${SV_ML_DIR}
-DSV_OpenCASCADE_DIR:PATH=${SV_OpenCASCADE_DIR}
-DSV_PYTHON_DIR:PATH=${SV_PYTHON_DIR}
-DSV_TINYXML2_DIR:PATH=${SV_TINYXML2_DIR}
-DSV_Qt6_DIR:PATH=${SV_Qt6_DIR}
-DSV_VTK_DIR:PATH=${SV_VTK_DIR}
#
-DSV_EXTERNALS_USE_PREBUILT_QT:BOOL=${SV_EXTERNALS_USE_PREBUILT_QT}
-DSV_EXTERNALS_PREBUILT_QT_PATH:PATH=${SV_EXTERNALS_PREBUILT_QT_PATH}
-DQt6_DIR:PATH=${SV_EXTERNALS_PREBUILT_QT_PATH}
-DSV_EXTERNALS_TOPLEVEL_BIN_DIR:PATH=${SV_EXTERNALS_TOPLEVEL_BIN_DIR}
${SV_EXTERNALS_ADDITIONAL_CMAKE_ARGS}
)
ExternalProject_Add(igraph_0_10
PREFIX "${IGRAPH_INSTALL}"
URL "https://github.com/igraph/igraph/releases/download/0.10.12/igraph-0.10.12.tar.gz"
SOURCE_DIR "${IGRAPH_DOWNLOAD}"
CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${IGRAPH_INSTALL}" "-DBUILD_SHARED_LIBS=ON" "-DCMAKE_INSTALL_LIBDIR=${IGRAPH_INSTALL}/lib" "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" "-Wno-deprecated" "-DIGRAPH_VERSION=0.10.12"
BINARY_DIR "${IGRAPH_BUILD}"
PATCH_COMMAND echo "No patch for igraph-0.10.x required"
INSTALL_DIR "${IGRAPH_INSTALL}"
BUILD_BYPRODUCTS "${IGRAPH_LIB}"
)
ExternalProject_Add(${name}
DEPENDS ${ARG_DEPENDS} llvm-config
${name}-clobber
PREFIX ${CMAKE_BINARY_DIR}/projects/${name}
SOURCE_DIR ${source_dir}
STAMP_DIR ${STAMP_DIR}
BINARY_DIR ${BINARY_DIR}
${exclude}
CMAKE_ARGS ${${nameCanon}_CMAKE_ARGS}
${compiler_args}
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
${sysroot_arg}
-DLLVM_BINARY_DIR=${PROJECT_BINARY_DIR}
-DLLVM_CONFIG_PATH=${llvm_config_path}
-DLLVM_ENABLE_WERROR=${LLVM_ENABLE_WERROR}
-DLLVM_HOST_TRIPLE=${LLVM_HOST_TRIPLE}
-DLLVM_HAVE_LINK_VERSION_SCRIPT=${LLVM_HAVE_LINK_VERSION_SCRIPT}
-DPACKAGE_VERSION=${PACKAGE_VERSION}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
-DCMAKE_EXPORT_COMPILE_COMMANDS=1
${ARG_CMAKE_ARGS}
${PASSTHROUGH_VARIABLES}
INSTALL_COMMAND ""
STEP_TARGETS configure build
BUILD_ALWAYS 1
USES_TERMINAL_CONFIGURE 1
USES_TERMINAL_BUILD 1
USES_TERMINAL_INSTALL 1
LIST_SEPARATOR |
)
ExternalProject_Add(gtest-parallel_ext
SOURCE_DIR "${gtest_parallel_source_dir}"
GIT_REPOSITORY "https://github.com/google/gtest-parallel.git"
GIT_TAG "master"
GIT_SHALLOW TRUE
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND "")
ExternalProject_Add(${DEP_NAME}
DEPENDS ${DEP_DEPENDS}
TMP_DIR ${BINARY_DIR}/tmp
STAMP_DIR ${BINARY_DIR}/stamp
GIT_REPOSITORY ${DEP_GIT_URL}
GIT_TAG ${DEP_GIT_TAG}
SOURCE_DIR ${SOURCE_DIR}
CMAKE_CACHE_ARGS ${CMAKE_ARGS}
BINARY_DIR ${BINARY_DIR}/build
INSTALL_DIR ${INSTALL_DIR})
ExternalProject_Add(openpose_lib
SOURCE_DIR ${CAFFE_URL}
PREFIX ${CAFFE_PREFIX}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
-DMKLDNN_INSTALL_DIR:PATH=<INSTALL_DIR>
-DUSE_MKL2017_AS_DEFAULT_ENGINE=${CAFFE_CPU_ONLY}
-DUSE_CUDNN=${USE_CUDNN}
-DCUDA_ARCH_NAME=${CUDA_ARCH}
-DCUDA_ARCH_BIN=${CUDA_ARCH_BIN}
-DCUDA_ARCH_PTX=${CUDA_ARCH_PTX}
-DCPU_ONLY=${CAFFE_CPU_ONLY}
-DCMAKE_BUILD_TYPE=Release
-DBUILD_docs=OFF
-DBUILD_python=OFF
-DBUILD_python_layer=OFF
-DUSE_LEVELDB=OFF
-DUSE_LMDB=OFF
-DUSE_OPENCV=OFF)
ExternalProject_Add(
variant
PREFIX variant
UPDATE_DISCONNECTED 1
URL https://github.com/mapbox/variant/archive/refs/tags/${VARIANT_VERSION}.tar.gz
URL_HASH SHA256=7059f4420d504c4bc96f8a462a0f6d029c5be914ba55cc030a0a773366dd7bc8
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
ExternalProject_Add( project_secp256k1
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/vendor/secp256k1-zkp
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/vendor/secp256k1-zkp
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/vendor/secp256k1-zkp/configure --prefix=${CMAKE_CURRENT_BINARY_DIR}/vendor/secp256k1-zkp --with-bignum=no --host=x86_64-w64-mingw32
BUILD_COMMAND make
INSTALL_COMMAND true
BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/vendor/secp256k1-zkp/src/project_secp256k1-build/.libs/libsecp256k1.a
)
ExternalProject_Add(
BUILTIN_CFITSIO
PREFIX ${CFITSIO_PREFIX}
URL https://lcgpackages.web.cern.ch/tarFiles/sources/cfitsio-${CFITSIO_VERSION}.tar.gz
URL_HASH SHA256=95900cf95ae760839e7cb9678a7b2fad0858d6ac12234f934bd1cb6bfc246ba9
CMAKE_ARGS -G ${CMAKE_GENERATOR}
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_C_FLAGS=${CFITSIO_C_FLAGS}
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-DCMAKE_INSTALL_LIBDIR=<INSTALL_DIR>/lib
-DBUILD_SHARED_LIBS=OFF
-DUSE_CURL=OFF
-DZLIB_FOUND=TRUE
-DZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIRS}
-DZLIB_LIBRARIES=$<TARGET_FILE:ZLIB::ZLIB>
# Skip the find_package(ZLIB REQUIRED), because we feed CFITSIO our own ZLIB flags.
PATCH_COMMAND git apply --ignore-space-change --ignore-whitespace
${CMAKE_CURRENT_SOURCE_DIR}/cfitsio-no-find-zlib.diff
${CMAKE_CURRENT_SOURCE_DIR}/no-fortran-wrapper.diff
BUILD_COMMAND ${CMAKE_COMMAND} --build . ${CFITSIO_BUILD_COMMAND_FLAGS}
INSTALL_COMMAND ${CMAKE_COMMAND} --build . ${CFITSIO_BUILD_COMMAND_FLAGS} --target install
LOG_DOWNLOAD 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 LOG_OUTPUT_ON_FAILURE 1
BUILD_BYPRODUCTS ${CFITSIO_LIBRARIES}
TIMEOUT 600
)
ExternalProject_Add(Seastar
SOURCE_DIR "${PROJECT_SOURCE_DIR}/seastar"
CONFIGURE_COMMAND ""
BUILD_COMMAND ${CMAKE_COMMAND} --build "${seastar_build_dir}"
--target seastar
--target seastar_testing
--target seastar_perf_testing
--target app_iotune
BUILD_ALWAYS ON
BUILD_BYPRODUCTS
${seastar_build_dir}/libseastar.$<IF:$<CONFIG:Debug,Dev>,so,a>
${seastar_build_dir}/libseastar_testing.$<IF:$<CONFIG:Debug,Dev>,so,a>
${seastar_build_dir}/libseastar_perf_testing.$<IF:$<CONFIG:Debug,Dev>,so,a>
${seastar_build_dir}/apps/iotune/iotune
${seastar_build_dir}/gen/include/seastar/http/chunk_parsers.hh
${seastar_build_dir}/gen/include/seastar/http/request_parser.hh
${seastar_build_dir}/gen/include/seastar/http/response_parser.hh
INSTALL_COMMAND "")
ExternalProject_Add(
ICU
URL ${VELOX_ICU4C_SOURCE_URL}
URL_HASH ${VELOX_ICU4C_BUILD_SHA256_CHECKSUM}
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/icu-src
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/icu-bld
CONFIGURE_COMMAND
<SOURCE_DIR>/source/configure --prefix=${ICU_DIR} --libdir=${ICU_LIBRARIES} ${ICU_CFG}
BUILD_COMMAND ${MAKE_PROGRAM} -j ${NUM_JOBS}
INSTALL_COMMAND ${HOST_ENV_CMAKE} ${MAKE_PROGRAM} install
)
ExternalProject_Add(${proj}
${${proj}_EP_ARGS}
DEPENDS ${Slicer_DEPENDENCIES} ${Slicer_REMOTE_DEPENDENCIES}
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
BINARY_DIR ${CMAKE_BINARY_DIR}/${Slicer_BINARY_INNER_SUBDIR}
DOWNLOAD_COMMAND ""
UPDATE_COMMAND ""
CMAKE_CACHE_ARGS
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_FLAGS:STRING=${ep_common_cxx_flags}
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS:STRING=${ep_common_c_flags}
-DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD}
-DCMAKE_CXX_STANDARD_REQUIRED:BOOL=${CMAKE_CXX_STANDARD_REQUIRED}
-DCMAKE_CXX_EXTENSIONS:BOOL=${CMAKE_CXX_EXTENSIONS}
-DADDITIONAL_C_FLAGS:STRING=${ADDITIONAL_C_FLAGS}
-DADDITIONAL_CXX_FLAGS:STRING=${ADDITIONAL_CXX_FLAGS}
-DSlicer_REQUIRED_C_FLAGS:STRING=${Slicer_REQUIRED_C_FLAGS}
-DSlicer_REQUIRED_CXX_FLAGS:STRING=${Slicer_REQUIRED_CXX_FLAGS}
-DSlicer_SUPERBUILD:BOOL=OFF
-DSlicer_SUPERBUILD_DIR:PATH=${CMAKE_BINARY_DIR}
-D${Slicer_MAIN_PROJECT}_APPLICATION_NAME:STRING=${${Slicer_MAIN_PROJECT}_APPLICATION_NAME}
-DSlicer_EXTENSION_SOURCE_DIRS:STRING=${Slicer_EXTENSION_SOURCE_DIRS}
-DSlicer_EXTENSION_INSTALL_DIRS:STRING=${Slicer_EXTENSION_INSTALL_DIRS}
-DExternalData_OBJECT_STORES:PATH=${ExternalData_OBJECT_STORES}
${EXTERNAL_PROJECT_OPTIONAL_ARGS}
INSTALL_COMMAND ""
)
ExternalProject_Add(
${ABSL_PROJECT}
PREFIX absl
URL ${ABSL_TAR_URL}
URL_MD5 52b9786ca6fbc679869fee2b6fef25a5
UPDATE_COMMAND ""
BUILD_BYPRODUCTS ${ABSL_STATIC_LIBRARIES}
CMAKE_CACHE_ARGS
-DCMAKE_C_COMPILER_LAUNCHER:STRING=${CMAKE_C_COMPILER_LAUNCHER}
-DCMAKE_CXX_COMPILER_LAUNCHER:STRING=${CMAKE_CXX_COMPILER_LAUNCHER}
-DCMAKE_INSTALL_PREFIX:PATH=${ABSL_INSTALL}
-DCMAKE_INSTALL_LIBDIR:PATH=${ABSL_INSTALL}/${CMAKE_INSTALL_LIBDIR}
-DCMAKE_INSTALL_MESSAGE:STRING=${CMAKE_INSTALL_MESSAGE}
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE})
ExternalProject_Add(
googletest
DOWNLOAD_COMMAND ""
SOURCE_DIR ${GOOGLETEST_ROOT}
BINARY_DIR ${GOOGLETEST_BINARY_DIR}
CMAKE_CACHE_ARGS "-DBUILD_GTEST:bool=ON" "-DBUILD_GMOCK:bool=OFF"
"-Dgtest_force_shared_crt:bool=ON"
"-DCMAKE_CXX_COMPILER:path=${CMAKE_CXX_COMPILER}"
INSTALL_COMMAND ""
)
ExternalProject_Add(googletest
${EXCLUDE_FROM_ALL_OPT} ${EXCLUDE_FROM_ALL_VALUE}
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG master
PREFIX "${CMAKE_BINARY_DIR}/googletest"
INSTALL_DIR "${CMAKE_BINARY_DIR}/googletest"
CMAKE_CACHE_ARGS
-DCMAKE_BUILD_TYPE:STRING=${GTEST_BUILD_TYPE}
-DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-DCMAKE_INSTALL_LIBDIR:PATH=<INSTALL_DIR>/lib
-DCMAKE_CXX_FLAGS:STRING=${GTEST_FLAGS}
-Dgtest_force_shared_crt:BOOL=ON
)
ExternalProject_Add(project_mpich
PREFIX ${CMAKE_INSTALL_PREFIX}
URL ${MPICH_URL}
STAMP_DIR ${MPICH_BINARY_DIR}/stamp
BUILD_IN_SOURCE 1
SOURCE_DIR ${MPICH_SOURCE_DIR}
TMP_DIR ${MPICH_BINARY_DIR}/tmp
INSTALL_DIR ${CMAKE_INSTALL_PREFIX}
CONFIGURE_COMMAND ${MPICH_SOURCE_DIR}/configure --prefix=<INSTALL_DIR> --CC=${CMAKE_C_COMPILER} --CXX=${CMAKE_CXX_COMPILER} ${TRY_TO_PASS_FC}
UPDATE_COMMAND ""
BUILD_COMMAND ${CMAKE_MAKE_PROGRAM}
INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} install
)
ExternalProject_Add(${project_name}
GIT_REPOSITORY ${target_url}
GIT_TAG ${git_tag}
CMAKE_ARGS "${CMAKE_ARGS};-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX};${my_cmake_args};"
BINARY_DIR "${target_bin_dir}"
INSTALL_DIR "${PROJECT_BINARY_DIR}/lib"
INSTALL_COMMAND ${install_cmd}
)
EXTERNALPROJECT_ADD(tcmalloc_ext
SOURCE_DIR ${TCMALLOC_SOURCE_DIR}
CMAKE_ARGS ${TCMALLOC_CMAKE_ARGS}
BUILD_BYPRODUCTS
"${CMAKE_BINARY_DIR}/lib/libtcmalloc.so"
"${CMAKE_BINARY_DIR}/lib/libtcmalloc.so.9.16.5"
"${CMAKE_BINARY_DIR}/lib/libtcmalloc_debug.so"
"${CMAKE_BINARY_DIR}/lib/libtcmalloc_debug.so.9.16.5"
)
ExternalProject_Add(
${project_name}_build
SOURCE_DIR ${source_dir}
BINARY_DIR ${build_dir}
CONFIGURE_COMMAND ${CMAKE_COMMAND} -P ${build_dir}/config_mingw.cmake
BUILD_COMMAND ${CMAKE_COMMAND} -P ${build_dir}/build_mingw.cmake
INSTALL_COMMAND "")
ExternalProject_Add(sipXtapi
GIT_REPOSITORY https://github.com/sipXtapi/sipXtapi.git
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
UPDATE_COMMAND ""
INSTALL_COMMAND ""
)
ExternalProject_Add(oneDPL
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/oneDPL
BINARY_DIR ${ONEDPL_BUILD}
CMAKE_ARGS ${CMAKE_ARGS_ONEDPL}
BUILD_COMMAND cmake --build ${ONEDPL_BUILD}
INSTALL_COMMAND cmake --install ${ONEDPL_BUILD} --prefix ${ONEDPL_INSTALL_DIR}
USES_TERMINAL_BUILD 1
COMMENT "Building oneDPL..."
)
EXTERNALPROJECT_ADD(tcmalloc_ext
SOURCE_DIR ${TCMALLOC_SOURCE_DIR}
CMAKE_ARGS ${TCMALLOC_CMAKE_ARGS}
BUILD_BYPRODUCTS
"${CMAKE_BINARY_DIR}/lib/libtcmalloc.so"
"${CMAKE_BINARY_DIR}/lib/libtcmalloc.so.9.16.5"
"${CMAKE_BINARY_DIR}/lib/libtcmalloc_debug.so"
"${CMAKE_BINARY_DIR}/lib/libtcmalloc_debug.so.9.16.5"
)
ExternalProject_Add(zdnn
GIT_REPOSITORY ${ZDNN_GITHUB_URL}
GIT_TAG ${version}
GIT_SUBMODULES ""
PREFIX ${ZDNN_PREFIX}
BUILD_IN_SOURCE ON
CONFIGURE_COMMAND sh -c "autoconf && ./configure"
# We build libzdnn.so so that obj/*.o are compiled with -fPIC
# Then we create libzdnn.a ourselves from these PIC .o since
# we want to embed libzdnn.a into model.so.
#
# Note we use sh to run the command. Otherwise, cmake will
# generate quotes around ${ZDNN_OBJDIR}/*.o due to the *
# in the path, which breaks ar.
#
# Set MAKEFLAGS to remove -j option passed down from the top
# level make which produces a warning about jobserver unavailable.
#
# Run make -q first to skip build if libzdnn.so is already
# up to date.
BUILD_COMMAND sh -c "export MAKEFLAGS=--no-print-directory && \
make -q -C zdnn lib/libzdnn.so && true || \
(MAKEFLAGS=--no-print-directory \
make -j$(nproc) -C zdnn lib/libzdnn.so && \
ar -rc ${ZDNN_LIBDIR}/libzdnn.a ${ZDNN_OBJDIR}/*.o)"
INSTALL_COMMAND ""
)
ExternalProject_Add(libnl
URL https://github.com/thom311/libnl/releases/download/libnl3_2_27/libnl-3.2.27.tar.gz
URL_MD5 cec19f941b79a38d9eb92dbc171d6dbd
UPDATE_COMMAND autoreconf -fi
CONFIGURE_COMMAND <SOURCE_DIR>/configure --prefix=<INSTALL_DIR> --disable-cli --disable-pthreads
BUILD_COMMAND $(MAKE)
INSTALL_COMMAND $(MAKE) install)
ExternalProject_Add(${NAME}
PREFIX ${NAME}
SOURCE_DIR "${examples_dir}"
BINARY_DIR ${NAME}
STAMP_DIR ${NAME}/logs
INSTALL_COMMAND "" #Skip
LOG_CONFIGURE 1
CMAKE_CACHE_ARGS "-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}"
"-Dprotobuf_VERBOSE:BOOL=${protobuf_VERBOSE}"
${ARGN}
)
externalproject_add(${LIBSSH2_LIBRARY_NAME}
PREFIX ${LIBSSH2_PROJECT_PREFIX}
URL ${LIBSSH2_ARCHIVE_URL}
DOWNLOAD_DIR ${LIBSSH2_PROJECT_PREFIX}
INSTALL_DIR ${LIBSSH2_INSTALL_DIR}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBSSH2_INSTALL_DIR}
-DBUILD_SHARED_LIBS=Off # Only build static for test linking
-DBUILD_EXAMPLES=Off
-DBUILD_TESTING=Off
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config RelWithDebInfo
INSTALL_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config RelWithDebInfo --target install
COMMAND ${LIBSSH2_INSTALL_EXTRAS_COMMAND}
LOG_DOWNLOAD 1
LOG_CONFIGURE 1
LOG_BUILD 1
LOG_INSTALL 1)
ExternalProject_Add(prebuilt_binaries
PREFIX "macos/${CMAKE_OSX_ARCHITECTURES}"
URL ${ARTIST_BINARIES_URL}
URL_MD5 ${ARTIST_BINARIES_MD5}
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
BUILD_BYPRODUCTS ${SKIA_LIBRARIES}
)
ExternalProject_Add(LibsystemdBuildProject
PREFIX libsystemd-v${SDBUSCPP_LIBSYSTEMD_VERSION}
GIT_REPOSITORY https://github.com/systemd/systemd-stable.git
GIT_TAG v${SDBUSCPP_LIBSYSTEMD_VERSION}-stable
GIT_SHALLOW 1
UPDATE_COMMAND ""
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E remove <BINARY_DIR>/*
COMMAND ${MESON} --prefix=<INSTALL_DIR> --buildtype=${LIBSYSTEMD_BUILD_TYPE} -Drootprefix=<INSTALL_DIR> -Dstatic-libsystemd=pic -Dselinux=false <SOURCE_DIR> <BINARY_DIR> ${SDBUSCPP_LIBSYSTEMD_EXTRA_CONFIG_OPTS}
BUILD_COMMAND ${BUILD_VERSION_H}
COMMAND ${NINJA} -C <BINARY_DIR> libsystemd.a
BUILD_ALWAYS 0
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory <SOURCE_DIR>/src/systemd <INSTALL_DIR>/include/systemd
LOG_DOWNLOAD 1 LOG_UPDATE 1 LOG_CONFIGURE 1 LOG_BUILD 1
BUILD_BYPRODUCTS <BINARY_DIR>/libsystemd.a)
ExternalProject_Add(
ArgParse
GIT_REPOSITORY https://github.com/p-ranav/argparse
GIT_TAG v2.1 # v2.2 contains invalid constexpr usage
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ArgParse
USES_TERMINAL_INSTALL 0
UPDATE_DISCONNECTED ${ThirdPartyDisconnected}
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/External
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
-DARGPARSE_BUILD_TESTS=OFF
-G ${CMAKE_GENERATOR}
)
ExternalProject_Add(
ext_intel_hexl
PREFIX ext_intel_hexl
GIT_REPOSITORY ${INTEL_HEXL_GIT_REPO_URL}
GIT_TAG ${INTEL_HEXL_GIT_LABEL}
CMAKE_ARGS
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DHEXL_SHARED_LIB=ON
-DHEXL_EXPERIMENTAL=ON
-DHEXL_DEBUG=OFF
-DHEXL_BENCHMARK=OFF
-DHEXL_COVERAGE=OFF
-DHEXL_TESTING=OFF
-DCMAKE_INSTALL_INCLUDEDIR=include
-DCMAKE_INSTALL_LIBDIR=lib
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/hexl-install
EXCLUDE_FROM_ALL TRUE
# Skip updates
UPDATE_COMMAND "")
ExternalProject_Add(fletch
PREFIX ${TELESCULPTOR_BINARY_DIR}
GIT_REPOSITORY "https://github.com/Kitware/fletch.git"
GIT_TAG 94870a290a06db845e80816863bb6d1b9cb12085
#GIT_SHALLOW 1
SOURCE_DIR ${TELESCULPTOR_EXTERNAL_DIR}/fletch
BINARY_DIR ${TELESCULPTOR_EXTERNAL_DIR}/fletch-build
STAMP_DIR ${TELESCULPTOR_STAMP_DIR}
CMAKE_CACHE_ARGS
-DBUILD_SHARED_LIBS:BOOL=ON
-Dfletch_BUILD_CXX11:BOOL=ON
-Dfletch_BUILD_WITH_PYTHON:BOOL=${TELESCULPTOR_ENABLE_PYTHON}
-Dfletch_ENABLE_Boost:BOOL=${TELESCULPTOR_ENABLE_FLETCH_BOOST}
-DBoost_SELECT_VERSION:STRING=1.65.1
-Dfletch_ENABLE_Caffe:BOOL=OFF
-Dfletch_ENABLE_Caffe_Segnet:BOOL=OFF
-Dfletch_ENABLE_Ceres:BOOL=${TELESCULPTOR_ENABLE_FLETCH_CERES}
-Dfletch_ENABLE_CppDB:BOOL=OFF
-Dfletch_ENABLE_Darknet:BOOL=OFF
-Dfletch_ENABLE_Darknet_OpenCV:BOOL=OFF
-Dfletch_ENABLE_Eigen:BOOL=${TELESCULPTOR_ENABLE_FLETCH_EIGEN}
-Dfletch_ENABLE_FFmpeg:BOOL=${TELESCULPTOR_ENABLE_FLETCH_FFMPEG}
-DFFmpeg_SELECT_VERSION:STRING=3.3.3
-Dfletch_ENABLE_GDAL:BOOL=${TELESCULPTOR_ENABLE_FLETCH_GDAL}
-Dfletch_ENABLE_GEOS:BOOL=${TELESCULPTOR_ENABLE_FLETCH_GEOS}
-Dfletch_ENABLE_GFlags:BOOL=OFF
-Dfletch_ENABLE_GLog:BOOL=${TELESCULPTOR_ENABLE_FLETCH_CERES}
-Dfletch_ENABLE_GTest:BOOL=${TELESCULPTOR_ENABLE_TESTING}
-Dfletch_ENABLE_GeographicLib:BOOL=OFF
-Dfletch_ENABLE_HDF5:BOOL=OFF
-Dfletch_ENABLE_ITK:BOOL=OFF
-Dfletch_ENABLE_LMDB:BOOL=OFF
-Dfletch_ENABLE_LevelDB:BOOL=OFF
-Dfletch_ENABLE_OpenBLAS:BOOL=OFF
-Dfletch_ENABLE_OpenCV:BOOL=${TELESCULPTOR_ENABLE_FLETCH_OPENCV}
-DOpenCV_SELECT_VERSION:STRING=4.5.1
-Dfletch_ENABLE_OpenCV_FFmpeg:BOOL=ON
-Dfletch_ENABLE_OpenCV_contrib:BOOL=ON
-Dfletch_ENABLE_OpenCV_highgui:BOOL=ON
-Dfletch_ENABLE_PDAL:BOOL=${TELESCULPTOR_ENABLE_FLETCH_PDAL}
-Dfletch_ENABLE_PNG:BOOL=${TELESCULPTOR_ENABLE_FLETCH_PNG}
-Dfletch_ENABLE_PROJ:BOOL=${TELESCULPTOR_ENABLE_FLETCH_PROJ}
-Dfletch_ENABLE_PostGIS:BOOL=OFF
-Dfletch_ENABLE_PostgresSQL:BOOL=OFF
-Dfletch_ENABLE_Protobuf:BOOL=OFF
-Dfletch_ENABLE_Qt:BOOL=${TELESCULPTOR_ENABLE_FLETCH_QT}
-DBUILD_Qt_MINIMAL:BOOL=ON
-DQt_SELECT_VERSION:STRING=5.12.8
-Dfletch_ENABLE_Snappy:BOOL=OFF
-Dfletch_ENABLE_SQLite3:BOOL=${TELESCULPTOR_ENABLE_FLETCH_PROJ}
-Dfletch_ENABLE_SuiteSparse:BOOL=${TELESCULPTOR_ENABLE_FLETCH_CERES}
-Dfletch_ENABLE_TinyXML:BOOL=OFF
-Dfletch_ENABLE_VTK:BOOL=${TELESCULPTOR_ENABLE_FLETCH_VTK}
-DVTK_SELECT_VERSION:STRING=9.0
-Dfletch_ENABLE_VXL:BOOL=ON
-Dfletch_ENABLE_YAMLcpp:BOOL=OFF
-Dfletch_ENABLE_ZLib:BOOL=${TELESCULPTOR_ENABLE_FLETCH_ZLIB}
-Dfletch_ENABLE_libgeotiff:BOOL=${TELESCULPTOR_ENABLE_FLETCH_GEOTIFF}
-Dfletch_ENABLE_libjpeg-turbo:BOOL=${TELESCULPTOR_ENABLE_FLETCH_JPEG}
-Dfletch_ENABLE_libjson:BOOL=OFF
-Dfletch_ENABLE_libkml:BOOL=OFF
-Dfletch_ENABLE_libtiff:BOOL=${TELESCULPTOR_ENABLE_FLETCH_TIFF}
-Dfletch_ENABLE_log4cplus:BOOL=ON
-Dfletch_ENABLE_openjpeg:BOOL=OFF
-Dfletch_ENABLE_qtExtensions:BOOL=ON
-Dfletch_ENABLE_pybind11:BOOL=${TELESCULPTOR_ENABLE_PYTHON}
-Dfletch_ENABLE_shapelib:BOOL=OFF
-Dfletch_BUILD_WITH_CUDA:BOOL=${TELESCULPTOR_ENABLE_CUDA}
-DCUDA_TOOLKIT_ROOT_DIR:PATH=${CUDA_TOOLKIT_ROOT_DIR}
-Dfletch_PYTHON_MAJOR_VERSION:STRING=3
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_CONFIGURATION_TYPES:STRING=${CMAKE_CONFIGURATION_TYPES}
-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}
${CMAKE_CXX_COMPILER_LAUNCHER_FLAG}
${CMAKE_C_COMPILER_LAUNCHER_FLAG}
-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}
-DCMAKE_SHARED_LINKER_FLAGS:STRING=${CMAKE_SHARED_LINKER_FLAGS}
-DADDITIONAL_C_FLAGS:STRING=${ADDITIONAL_C_FLAGS}
-DADDITIONAL_CXX_FLAGS:STRING=${ADDITIONAL_CXX_FLAGS}
${FLETCH_ADDITIONAL_OPTIONS}
INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "Skipping install step."
USES_TERMINAL_BUILD 1
)
ExternalProject_Add(
VTK
GIT_REPOSITORY https://github.com/Kitware/VTK.git
PREFIX VTK
GIT_TAG ${VTK_GIT_TAG}
BINARY_DIR VTK/bin
TMP_DIR VTK/tmp
SOURCE_DIR VTK/src
DOWNLOAD_DIR VTK/download
STAMP_DIR VTK/stamp
UPDATE_DISCONNECTED 1
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
CMAKE_CACHE_ARGS -DVTK_RENDERING_BACKEND:STRING=OpenGL2 -DModule_vtkRenderingExternal:BOOL=ON -DBUILD_TESTING:BOOL=OFF
)
ExternalProject_Add(third-party-boost
URL ${URL}
##URL_HASH SHA1=230782c7219882d0fab5f1effbe86edb85238bf4 # ignored to support older cmake
SOURCE_DIR ${EXTERN_BUILD_DIR}/src/boost
PREFIX ${EXTERN_BUILD_DIR}/boost
STAMP_DIR ${EXTERN_STAMP_DIR}/boost
INSTALL_DIR ${THIRD_PARTY_ROOT}
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND
./bootstrap.sh
--with-libraries=filesystem
--with-libraries=system
--with-libraries=test
--with-libraries=random
--prefix=<INSTALL_DIR>
BUILD_COMMAND
./b2 install --link=static --variant=release --threading=single --runtime-link=static
INSTALL_COMMAND ""
)
ExternalProject_Add(${NAME}
PREFIX ${NAME}
SOURCE_DIR "${examples_dir}"
BINARY_DIR ${NAME}
STAMP_DIR ${NAME}/logs
INSTALL_COMMAND "" #Skip
LOG_CONFIGURE 1
CMAKE_CACHE_ARGS "-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}"
"-Dprotobuf_VERBOSE:BOOL=${protobuf_VERBOSE}"
${ARGN}
)
ExternalProject_Add(aprilasr
SOURCE_DIR ${external_dir}/aprilasr
BINARY_DIR ${PROJECT_BINARY_DIR}/external/aprilasr
INSTALL_DIR ${PROJECT_BINARY_DIR}/external
URL "${aprilasr_source_url}"
URL_HASH SHA256=${aprilasr_checksum}
CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=<INSTALL_DIR>
-DCMAKE_INSTALL_LIBDIR=lib
BUILD_ALWAYS False
)
ExternalProject_Add(
google_benchmark
URL "https://github.com/google/benchmark/archive/v1.1.0.tar.gz"
URL_MD5 "66b2a23076cf70739525be0092fc3ae3"
CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:STRING=<INSTALL_DIR>
)
ExternalProject_Add(libjpeg-turbo-project
URL https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/tags/3.0.2.zip
URL_HASH SHA512=c048c041f0bf205a8a3c8b8928d7a44299466253789f533db91f6ae4209a9074d5baef2fbb8e0a4215b4e3d2ba30c784f51b6c79ce0d2b1ea75440b8ffb23859
PREFIX "${CMAKE_CURRENT_BINARY_DIR}/libjpeg-turbo"
INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/libjpeg-turbo"
BUILD_BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/libjpeg-turbo/lib/${CMAKE_STATIC_LIBRARY_PREFIX}jpeg${LIBJPEG_TURBO_STATIC_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}"
CMAKE_CACHE_ARGS
-DENABLE_SHARED:BOOL=OFF
-DENABLE_STATIC:BOOL=ON
-DWITH_ARITH_DEC:BOOL=ON
-DWITH_ARITH_ENC:BOOL=ON
-DWITH_JPEG8:BOOL=OFF
-DWITH_JPEG7:BOOL=OFF
-DWITH_TURBOJPEG:BOOL=OFF
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-DCMAKE_INSTALL_LIBDIR:PATH=<INSTALL_DIR>/lib)
ExternalProject_Add(\n"
" Hunter\n"
" URL\n"
" \"${HUNTER_GATE_URL}\"\n"
" URL_HASH\n"
" SHA1=${HUNTER_GATE_SHA1}\n"
" DOWNLOAD_DIR\n"
" \"${dir}\"\n"
" TLS_VERIFY\n"
" ${HUNTER_TLS_VERIFY}\n"
" SOURCE_DIR\n"
" \"${dir}/Unpacked\"\n"
" CONFIGURE_COMMAND\n"
" \"\"\n"
" BUILD_COMMAND\n"
" \"\"\n"
" INSTALL_COMMAND\n"
" \"\"\n"
")
ExternalProject_Add(mockups-external
GIT_REPOSITORY ${BUILD_MOCKUPS_GIT_REPO}
GIT_SHALLOW ${BUILD_MOCKUPS_GIT_SHALLOW}
GIT_TAG ${BUILD_MOCKUPS_VERSION}
PREFIX "${CMAKE_BINARY_DIR}/external_projects"
UPDATE_COMMAND ""
BUILD_ALWAYS ON
CMAKE_COMMAND "${EXTERNAL_CMAKE_COMMAND}"
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>/mockups)
ExternalProject_Add(${name}-dl
${ARGN}
SOURCE_DIR \"${srcdir}\"
BINARY_DIR \"${dir}/build\"
CONFIGURE_COMMAND \"\"
BUILD_COMMAND \"\"
INSTALL_COMMAND \"\"
TEST_COMMAND \"\"
)
ExternalProject_Add(jemalloc
PREFIX extra/jemalloc
SOURCE_DIR ${SOURCE_DIR}
BINARY_DIR ${BINARY_DIR}
STAMP_DIR ${BINARY_DIR}
CONFIGURE_COMMAND "${SOURCE_DIR}/configure" ${JEMALLOC_CONFIGURE_OPTS}
BUILD_COMMAND ${MAKE_COMMAND} "build_lib_static"
INSTALL_COMMAND ""
)
ExternalProject_add(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG d1467f5813f4d363cfd11aba99c4e9fe47a85e99
UPDATE_COMMAND ""
INSTALL_COMMAND ""
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON
)
ExternalProject_Add(${PACKAGE_NAME}
DEPENDS ${SUPER_BUILD_TARGET_DEPENDENCIES}
SOURCE_DIR ${${PACKAGE_NAME}_DIR}
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
${${PACKAGE_NAME}_CMAKE_MODULE_PATH}
${BASIS_SUPER_BUILD_ARGS}
CMAKE_CHACHE_ARGS
-DCMAKE_PREFIX_PATH:STRING=${CMAKE_PREFIX_PATH_PIPE}
CMAKE_GENERATOR
${CMAKE_GENERATOR}
CMAKE_TOOLSET
${CMAKE_TOOLSET}
BINARY_DIR
${${PACKAGE_NAME}_BINARY_DIR}
INSTALL_DIR
${${PACKAGE_NAME}_CMAKE_INSTALL_PREFIX}
)
ExternalProject_Add(
compiler
DOWNLOAD_COMMAND ""
CONFIGURE_COMMAND ""
BUILD_COMMAND ${COMPILER_CARGO_COMMAND}
BINARY_DIR "${CMAKE_SOURCE_DIR}/compiler"
INSTALL_COMMAND ""
BUILD_ALWAYS ON
USE_TERMINAL_BUILD ON
)
ExternalProject_Add(
libdjinterop
URL
"https://github.com/xsco/libdjinterop/archive/refs/tags/${LIBDJINTEROP_VERSION}.tar.gz"
"https://launchpad.net/~xsco/+archive/ubuntu/djinterop/+sourcefiles/libdjinterop/${LIBDJINTEROP_VERSION}-0ubuntu1/libdjinterop_${LIBDJINTEROP_VERSION}.orig.tar.gz"
URL_HASH
SHA256=f4fbe728783c14acdc999b74ce3f03d680f9187e1ff676d6bf1233fdb64ae7b2
DOWNLOAD_DIR "${CMAKE_CURRENT_BINARY_DIR}/downloads"
DOWNLOAD_NAME "libdjinterop-${LIBDJINTEROP_VERSION}.tar.gz"
PREFIX "libdjinterop-${LIBDJINTEROP_VERSION}"
INSTALL_DIR ${DJINTEROP_INSTALL_DIR}
LIST_SEPARATOR "|"
CMAKE_ARGS
-DBUILD_SHARED_LIBS=OFF -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-DCMAKE_PREFIX_PATH=${PIPE_DELIMITED_CMAKE_PREFIX_PATH}
-DCMAKE_INSTALL_LIBDIR:PATH=lib
-DCMAKE_MODULE_PATH:PATH=${CMAKE_MODULE_PATH}
-$<IF:$<BOOL:${CMAKE_TOOLCHAIN_FILE}>,D,U>CMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}
-$<IF:$<BOOL:${CMAKE_OSX_DEPLOYMENT_TARGET}>,D,U>CMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}
-$<IF:$<BOOL:${CMAKE_OSX_ARCHITECTURES}>,D,U>CMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
-DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}
-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
-DSYSTEM_SQLITE=${DJINTEROP_SYSTEM_SQLITE}
BUILD_COMMAND ${CMAKE_COMMAND} --build . --target DjInterop
BUILD_BYPRODUCTS <INSTALL_DIR>/${DJINTEROP_LIBRARY}
EXCLUDE_FROM_ALL TRUE
)
ExternalProject_Add(ZLIB
SOURCE_DIR ${ZLIB_SOURCE_DIR}
URL https://sdk.amazonaws.com/cpp/builds/zlib-1.2.11.tar.gz
URL_HASH "SHA256=c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1"
PATCH_COMMAND ""
CMAKE_ARGS
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
-DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=${CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION}
-DANDROID_NATIVE_API_LEVEL=${ANDROID_NATIVE_API_LEVEL}
-DANDROID_ABI=${ANDROID_ABI}
-DANDROID_TOOLCHAIN=${ANDROID_TOOLCHAIN}
-DANDROID_STL=${ANDROID_STL}
-DCMAKE_INSTALL_PREFIX=${ZLIB_INSTALL_DIR}
-DCMAKE_CXX_FLAGS=${EXTERNAL_CXX_FLAGS}
-DCMAKE_C_FLAGS=${EXTERNAL_C_FLAGS}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DBUILD_SHARED_LIBS=OFF
)
ExternalProject_Add(${name}_project
DOWNLOAD_DIR ${_DIR}
SOURCE_DIR ${_DIR}
INSTALL_DIR ${INSTALL_ROOT}
UPDATE_COMMAND ""
BUILD_COMMAND ${parsed_BUILD_COMMAND}
INSTALL_COMMAND ${parsed_INSTALL_COMMAND}
# Wrap download, configure and build steps in a script to log output
LOG_INSTALL ON
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_PATCH ON
LOG_UPDATE ON
CMAKE_GENERATOR "Unix Makefiles"
BUILD_BYPRODUCTS ${LIB_FILES}
# LIST_SEPARATOR | # Use the alternate list separator.
# Can not use | because we use it inside sh/install_cmd
# we need those CMAKE_ARGS for cmake based 3rd party projects.
# CMAKE_ARCHIVE_OUTPUT_DIRECTORY is for static libs
# CMAKE_LIBRARY_OUTPUT_DIRECTORY is for shared libs
CMAKE_ARGS -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${INSTALL_ROOT}/lib
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${INSTALL_ROOT}/lib
-DCMAKE_BUILD_TYPE:STRING=Release
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
-DBUILD_TESTING=OFF
"-DCMAKE_C_FLAGS:STRING=-O3" -DCMAKE_CXX_FLAGS=${THIRD_PARTY_CXX_FLAGS}
-DCMAKE_INSTALL_PREFIX:PATH=${INSTALL_ROOT}
${piped_CMAKE_ARGS}
${parsed_UNPARSED_ARGUMENTS}
)
ExternalProject_Add(${arg_NAME}
EXCLUDE_FROM_ALL TRUE
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${subdir}"
PREFIX "${CMAKE_CURRENT_BINARY_DIR}/${subdir}-ep"
STAMP_DIR "${CMAKE_CURRENT_BINARY_DIR}/${subdir}-ep/stamp"
BINARY_DIR "${ep_binary_dir}"
INSTALL_DIR "${example_install_path}"
INSTALL_COMMAND ""
${build_command}
TEST_COMMAND ""
DEPENDS ${deps}
CMAKE_CACHE_ARGS ${var_defs}
-DQT_INTERNAL_IS_EXAMPLE_EP_BUILD:BOOL=TRUE
-DCMAKE_INSTALL_PREFIX:STRING=<INSTALL_DIR>
-DQT_INTERNAL_SET_EXAMPLE_INSTALL_DIR_TO_DOT:BOOL=TRUE
${terminal_args}
)
ExternalProject_Add(compiler-rt
PREFIX ${COMPILER_RT_PREFIX}
SOURCE_DIR ${COMPILER_RT_SRC_ROOT}
CMAKE_ARGS -DCMAKE_C_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang
-DCMAKE_CXX_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++
-DCMAKE_BUILD_TYPE=Release
-DLLVM_CONFIG_PATH=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-config
-DCOMPILER_RT_OUTPUT_DIR=${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}
-DCOMPILER_RT_EXEC_OUTPUT_DIR=${LLVM_RUNTIME_OUTPUT_INTDIR}
-DCOMPILER_RT_INSTALL_PATH=lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}
-DCOMPILER_RT_INCLUDE_TESTS=${LLVM_INCLUDE_TESTS}
-DCOMPILER_RT_ENABLE_WERROR=ON
INSTALL_COMMAND ""
STEP_TARGETS configure build
)
ExternalProject_Add(${name}
DEPENDS ${ARG_DEPENDS} llvm-config
${name}-clobber
PREFIX ${CMAKE_BINARY_DIR}/projects/${name}
SOURCE_DIR ${source_dir}
STAMP_DIR ${STAMP_DIR}
BINARY_DIR ${BINARY_DIR}
${exclude}
CMAKE_ARGS ${${nameCanon}_CMAKE_ARGS}
${compiler_args}
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-DLLVM_BINARY_DIR=${PROJECT_BINARY_DIR}
-DLLVM_CONFIG_PATH=$<TARGET_FILE:llvm-config>
-DLLVM_ENABLE_WERROR=${LLVM_ENABLE_WERROR}
-DPACKAGE_VERSION=${PACKAGE_VERSION}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
${ARG_CMAKE_ARGS}
${PASSTHROUGH_VARIABLES}
INSTALL_COMMAND ""
STEP_TARGETS configure build
BUILD_ALWAYS 1
USES_TERMINAL_CONFIGURE 1
USES_TERMINAL_BUILD 1
USES_TERMINAL_INSTALL 1
)
ExternalProject_Add(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.7.0
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/gtest
CMAKE_ARGS "-DBUILD_SHARED_LIBS=ON"
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/gtest/googletest/googletest
INSTALL_COMMAND ""
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON
)
ExternalProject_Add(\n"
" Hunter\n"
" URL\n"
" \"${HUNTER_GATE_URL}\"\n"
" URL_HASH\n"
" SHA1=${HUNTER_GATE_SHA1}\n"
" DOWNLOAD_DIR\n"
" \"${dir}\"\n"
" TLS_VERIFY\n"
" ${HUNTER_TLS_VERIFY}\n"
" SOURCE_DIR\n"
" \"${dir}/Unpacked\"\n"
" CONFIGURE_COMMAND\n"
" \"\"\n"
" BUILD_COMMAND\n"
" \"\"\n"
" INSTALL_COMMAND\n"
" \"\"\n"
")
ExternalProject_Add(http
GIT_REPOSITORY https://github.com/yhirose/cpp-httplib
CONFIGURE_COMMAND ""
UPDATE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
ExternalProject_Add(iptables
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/iptables/
CONFIGURE_COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR}/iptables/ && ./autogen.sh && ./configure --prefix=${IPTABLES_INSTALL_DIR} --disable-nftables
BUILD_COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR}/iptables && make
INSTALL_COMMAND exit
)
ExternalProject_Add(${name}
DEPENDS ${ARG_DEPENDS} llvm-config
${name}-clobber
PREFIX ${CMAKE_BINARY_DIR}/projects/${name}
SOURCE_DIR ${source_dir}
STAMP_DIR ${STAMP_DIR}
BINARY_DIR ${BINARY_DIR}
${exclude}
CMAKE_ARGS ${${nameCanon}_CMAKE_ARGS}
${compiler_args}
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
${sysroot_arg}
-DLLVM_BINARY_DIR=${PROJECT_BINARY_DIR}
-DLLVM_CONFIG_PATH=${llvm_config_path}
-DLLVM_ENABLE_WERROR=${LLVM_ENABLE_WERROR}
-DLLVM_HOST_TRIPLE=${LLVM_HOST_TRIPLE}
-DLLVM_HAVE_LINK_VERSION_SCRIPT=${LLVM_HAVE_LINK_VERSION_SCRIPT}
-DPACKAGE_VERSION=${PACKAGE_VERSION}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
-DCMAKE_EXPORT_COMPILE_COMMANDS=1
${ARG_CMAKE_ARGS}
${PASSTHROUGH_VARIABLES}
INSTALL_COMMAND ""
STEP_TARGETS configure build
BUILD_ALWAYS 1
USES_TERMINAL_CONFIGURE 1
USES_TERMINAL_BUILD 1
USES_TERMINAL_INSTALL 1
LIST_SEPARATOR |
)