|
| 1 | +include(ExternalProject) |
| 2 | + |
| 3 | +if (MSVC) |
| 4 | + set(LINK_DIR_OPTION -LIBPATH:) |
| 5 | +elseif() |
| 6 | + set(LINK_DIR_OPTION -L) |
| 7 | +endif() |
| 8 | + |
| 9 | +set(DEPENDENCY_INSTALL_DIR ${PROJECT_BINARY_DIR}/install) |
| 10 | +set(DEPENDENCY_INCLUDE_DIR ${DEPENDENCY_INSTALL_DIR}/include) |
| 11 | +set(DEPENDENCY_LIBS ${LINK_DIR_OPTION}${DEPENDENCY_INSTALL_DIR}/lib) |
| 12 | + |
| 13 | +# spdlog: fast logger library |
| 14 | +ExternalProject_Add( |
| 15 | + dep-spdlog |
| 16 | + GIT_REPOSITORY "https://github.com/gabime/spdlog.git" |
| 17 | + GIT_TAG "v1.x" |
| 18 | + GIT_SHALLOW 1 |
| 19 | + UPDATE_COMMAND "" |
| 20 | + PATCH_COMMAND "" |
| 21 | + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR} |
| 22 | + TEST_COMMAND "" |
| 23 | +) |
| 24 | +set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep-spdlog) |
| 25 | +set(DEPENDENCY_LIBS ${DEPENDENCY_LIBS} spdlog$<$<CONFIG:Debug>:d>) |
| 26 | + |
| 27 | +# clipp: header-only good c++ argument parser |
| 28 | +ExternalProject_Add( |
| 29 | + dep-clipp |
| 30 | + GIT_REPOSITORY "https://github.com/muellan/clipp.git" |
| 31 | + GIT_TAG "v1.2.2" |
| 32 | + GIT_SHALLOW 1 |
| 33 | + UPDATE_COMMAND "" |
| 34 | + PATCH_COMMAND "" |
| 35 | + CONFIGURE_COMMAND "" |
| 36 | + BUILD_COMMAND "" |
| 37 | + INSTALL_COMMAND |
| 38 | + ${CMAKE_COMMAND} -E make_directory ${DEPENDENCY_INSTALL_DIR}/include && |
| 39 | + ${CMAKE_COMMAND} -E copy |
| 40 | + ${CMAKE_CURRENT_BINARY_DIR}/dep-clipp-prefix/src/dep-clipp/include/clipp.h |
| 41 | + ${DEPENDENCY_INSTALL_DIR}/include |
| 42 | + TEST_COMMAND "" |
| 43 | + ) |
| 44 | +set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep-clipp) |
| 45 | + |
| 46 | +# json: header-only json parser using modern c++ |
| 47 | +ExternalProject_Add( |
| 48 | + dep-json |
| 49 | + GIT_REPOSITORY "https://github.com/nlohmann/json.git" |
| 50 | + GIT_TAG "v3.9.0" |
| 51 | + GIT_SHALLOW 1 |
| 52 | + UPDATE_COMMAND "" |
| 53 | + PATCH_COMMAND "" |
| 54 | + CMAKE_ARGS |
| 55 | + -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR} |
| 56 | + -DJSON_BuildTests=OFF |
| 57 | + TEST_COMMAND "" |
| 58 | + ) |
| 59 | +set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep-json) |
| 60 | + |
| 61 | +# magic_enum: header-only enum class utility |
| 62 | +ExternalProject_Add( |
| 63 | + dep_magic_enum |
| 64 | + GIT_REPOSITORY "https://github.com/Neargye/magic_enum.git" |
| 65 | + GIT_TAG "v0.6.6" |
| 66 | + GIT_SHALLOW 1 |
| 67 | + UPDATE_COMMAND "" |
| 68 | + PATCH_COMMAND "" |
| 69 | + CMAKE_ARGS |
| 70 | + -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR} |
| 71 | + -DMAGIC_ENUM_OPT_BUILD_EXAMPLES=OFF |
| 72 | + -DMAGIC_ENUM_OPT_BUILD_TESTS=OFF |
| 73 | + TEST_COMMAND "" |
| 74 | + ) |
| 75 | +set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep_magic_enum) |
| 76 | + |
| 77 | +# filesystem: c++14-based filesystem that implements c++17 filesystem |
| 78 | +ExternalProject_Add( |
| 79 | + dep_filesystem |
| 80 | + GIT_REPOSITORY "https://github.com/gulrak/filesystem.git" |
| 81 | + GIT_TAG "v1.3.2" |
| 82 | + GIT_SHALLOW 1 |
| 83 | + UPDATE_COMMAND "" |
| 84 | + PATCH_COMMAND "" |
| 85 | + CMAKE_ARGS |
| 86 | + -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR} |
| 87 | + -DGHC_FILESYSTEM_BUILD_TESTING=OFF |
| 88 | + -DGHC_FILESYSTEM_BUILD_EXAMPLES=OFF |
| 89 | + TEST_COMMAND "" |
| 90 | + ) |
| 91 | +set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep_filesystem) |
0 commit comments