{
"configurations": [
{
"type": "command",
"name": "Create Build and Dependencies Directory",
"program": "/opt/cmake/bin/cmake",
"args": [
"-E",
"make_directory",
"$PROJECT_DIR$/build-output/standalone-libs"
],
},
{
"type": "command",
"name": "Generate build receipe",
"program": "/opt/cmake/bin/cmake",
"args": [
"-S",
"$PROJECT_DIR$",
"-B",
"$PROJECT_DIR$/build-output",
"-DCMAKE_EXPORT_COMPILE_COMMANDS=ON",
"-DCMAKE_BUILD_TYPE=Release",
"-DCMAKE_CXX_COMPILER=/opt/clang+llvm/bin/clang++",
"-DCMAKE_C_COMPILER=/opt/clang+llvm/bin/clang",
"-DCMAKE_CXX_CLANG_TIDY=/opt/clang+llvm/bin/clang-tidy;-checks=*",
"-DCMAKE_CXX_INCLUDE_WHAT_YOU_USE=/usr/bin/iwyu;--transitive_includes_only",
"-DCMAKE_LINK_WHAT_YOU_USE=TRUE"
"-DCMAKE_CXX_CPPLINT=/opt/cpplint/cpplint.py;--linelength=120)",
"-DCMAKE_CXX_CPPCHECK=/opt/cppcheck/cppcheck;--std=c++20",
"-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/installs",
"-DCMAKE_INSTALL_PREFIX=$PROJECT_DIR$/build-output/installs",
"-DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/installs"
],
"environment": {
"TEMP_DIR": "/home/user/temp",
"GENERATE_RANDOM_PASSWORD": "true",
"CC": "/opt/clang+llvm/bin/clang",
"CXX": "/opt/clang+llvm/bin/clang++",
}
},
{
"type": "command",
"name": "Build Librarie and Dependencies",
"program": "/opt/cmake/bin/cmake",
"args": [
"--build",
"$PROJECT_DIR$/build-output",
"--target",
"all",
"--config",
"Release"
],
},
{
"type": "command",
"name": "Run main application",
"program": "$PROJECT_DIR$/src/main/cpp/app",
},
{
"type": "command",
"name": "Run unit test application",
"program": "$PROJECT_DIR$/src/test/cpp/appTest",
},
]
}
ExternalProject_Add(RapidJSON
PREFIX "vendor/tencent/rapidjson"
GIT_REPOSITORY "https://github.com/Tencent/rapidjson.git"
GIT_TAG f9d53419e912910fd8fa57d5705fa41425428c35
TIMEOUT 10
CMAKE_ARGS
-DRAPIDJSON_BUILD_TESTS=OFF
-DRAPIDJSON_BUILD_DOC=OFF
-DRAPIDJSON_BUILD_EXAMPLES=OFF
-DRAPIDJSON_BUILD_CXX17=ON
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/installs
-DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/installs
# CONFIGURE_COMMAND ""
# BUILD_COMMAND make
# INSTALL_COMMAND make install
UPDATE_COMMAND ""
)
ExternalProject_Add(libopenssl
PREFIX "vendor/openssl/openssl"
URL
https://www.openssl.org/source/openssl-3.2.0.tar.gz
CONFIGURE_COMMAND
./config no-shared no-idea no-mdc2 no-rc5 --prefix=${CMAKE_BINARY_DIR}/installs
BUILD_COMMAND
make
INSTALL_COMMAND
make install_sw
BUILD_IN_SOURCE 1
)
ExternalProject_Add(Boost
PREFIX "vendor/boostorg/Boost"
DEPENDS
libopenssl
URL
https://boostorg.jfrog.io/artifactory/main/release/1.83.0/source/boost_1_83_0.tar.gz
CONFIGURE_COMMAND
./bootstrap.sh --prefix=${CMAKE_BINARY_DIR}/installs
BUILD_COMMAND
./b2 clean
./b2 cxxstd=23 -j64 link=static address-model=64 --architecture=x64 variant=release #toolset=clang cxxflags=-fPIC cxxstd=14
BUILD_IN_SOURCE
true
INSTALL_COMMAND
./b2 install
INSTALL_DIR
${CMAKE_BINARY_DIR}/installs
)
ExternalProject_Add(googletest
PREFIX "vendor/google/googletest"
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG main
GIT_PROGRESS 1
CMAKE_ARGS
-DCMAKE_BUILD_TYPE:STRING=Release
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/installs
$<$<PLATFORM_ID:Windows>:-Dgtest_force_shared_crt:BOOL=ON>
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_INSTALL ON
)
ExternalProject_Add(abseilcpp
PREFIX "vendor/abseil/abseil-cpp"
GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
GIT_TAG master
GIT_PROGRESS 1
CMAKE_ARGS
-DCMAKE_BUILD_TYPE:STRING=Release
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/installs
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_INSTALL ON
)
ExternalProject_Add(crc32c
PREFIX "vendor/google/crc32c"
GIT_REPOSITORY "https://github.com/google/crc32c.git"
GIT_TAG "21fc8ef30415a635e7351ffa0e5d5367943d4a94"
EXCLUDE_FROM_ALL ON
CMAKE_CACHE_ARGS
-DCRC32C_BUILD_TESTS:BOOL=OFF
-DBUILD_SHARED_LIBS:STRING=no
-DCRC32C_BUILD_BENCHMARKS:BOOL=OFF
-DCRC32C_USE_GLOG:BOOL=OFF
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
-DCMAKE_BUILD_TYPE:STRING=Release
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/installs
-DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/installs
)
ExternalProject_Add(libexpat
PREFIX "vendor/libexpat/expat"
GIT_REPOSITORY https://github.com/libexpat/libexpat.git
GIT_TAG master
GIT_PROGRESS 1
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/libexpat-cpp-src"
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/libexpat-cpp-build"
CONFIGURE_COMMAND ${CMAKE_COMMAND} -S ${CMAKE_CURRENT_BINARY_DIR}/libs/libexpat-cpp-src/expat -B ${CMAKE_CURRENT_BINARY_DIR}/libs/libexpat-cpp-build
-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/installs -DBUILD_SHARED_LIBS=OFF -DEXPAT_BUILD_EXAMPLES=OFF -DEXPAT_BUILD_TESTS=OFF -DEXPAT_SHARED_LIBS=OFF
-DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/installs -DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=true
BUILD_COMMAND
COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config Release --target install
INSTALL_COMMAND ""
TEST_COMMAND ""
)
ExternalProject_Add(libapr
PREFIX "vendor/apache/apr"
GIT_REPOSITORY https://github.com/apache/apr.git
GIT_TAG 1.7.x
GIT_PROGRESS 1
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND
./buildconf && ./configure --enable-threads --enable-posix-shm --enable-allocator-uses-mmap
--enable-allocator-guard-pages --enable-pool-concurrency-check --enable-other-child
--prefix=${CMAKE_BINARY_DIR}/installs
BUILD_COMMAND
COMMAND make clean && make install
)
ExternalProject_Add(libapr-util
PREFIX "vendor/apache/apr-util"
GIT_REPOSITORY https://github.com/apache/apr-util.git
GIT_TAG 1.7.x
GIT_PROGRESS 1
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND
./buildconf --with-apr=${CMAKE_BINARY_DIR}/vendor/apache/apr/src/libapr --prefix=${CMAKE_BINARY_DIR}/installs && ./configure --prefix=${CMAKE_BINARY_DIR}/installs --with-apr=${CMAKE_BINARY_DIR}/installs --with-openssl=${CMAKE_BINARY_DIR}/installs --with-expat=${CMAKE_BINARY_DIR}/installs
)
ExternalProject_Add(libxerces
PREFIX "vendor/apache/xerces-c"
GIT_REPOSITORY https://github.com/apache/xerces-c.git
GIT_TAG master
GIT_PROGRESS 1
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND
./reconf && ./configure --prefix=${CMAKE_BINARY_DIR}/installs/
)
ExternalProject_Add(libfmt
PREFIX "vendor/fmtlib/fmt"
GIT_REPOSITORY
"https://github.com/fmtlib/fmt.git"
GIT_TAG
"10.1.1"
GIT_CONFIG advice.detachedHead=false
CMAKE_CACHE_ARGS
-DFMT_INSTALL:BOOL=ON
-DFMT_DOC:BOOL=OFF
-DFMT_TEST:BOOL=OFF
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/installs
-DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/installs
)
ExternalProject_Add(curl
PREFIX "vendor/curl/curl"
GIT_REPOSITORY "https://github.com/curl/curl"
GIT_TAG "master"
GIT_CONFIG advice.detachedHead=false
CMAKE_CACHE_ARGS
-DBUILD_SHARED_LIBS:BOOL=OFF
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/installs
-DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/installs
-DBUILD_STATIC_LIBS:BOOL=ON
-BUILD_SHARED_LIBS:BOOL=OFF
# CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR}/installs --with-ssl=${CMAKE_BINARY_DIR}/installs
# --enable-shared=no --disable-ldap --disable-ldaps --without-brotli
# --without-zstd --without-libidn2 --without-nghttp2 #--enable-debug
)
ExternalProject_Add(libzlib
PREFIX "vendor/madler/zlib"
GIT_REPOSITORY https://github.com/madler/zlib.git
GIT_TAG master
CMAKE_ARGS
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
-DBUILD_TESTING:BOOL=OFF
-DBUILD_CURL_EXE:BOOL=OFF
-DBUILD_SHARED_LIBS:BOOL=OFF
-DCURL_STATICLIB:BOOL=ON
# -DHTTP_ONLY:BOOL=ON
-DCMAKE_BUILD_TYPE:STRING=Release
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/installs
-DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/installs
)
ExternalProject_Add(libopenssl
PREFIX "vendor/openssl/openssl"
URL
https://www.openssl.org/source/openssl-3.2.0.tar.gz
CONFIGURE_COMMAND
./config --prefix=${CMAKE_BINARY_DIR}/installs
BUILD_COMMAND
make
INSTALL_COMMAND
make install_sw
BUILD_IN_SOURCE 1
)
ExternalProject_Add(log4cxx
PREFIX "vendor/apache/logging-log4cxx"
GIT_REPOSITORY "https://github.com/apache/logging-log4cxx.git"
GIT_TAG 0f20ec761ef24191094bb7b575ba3637f422a1e5
TIMEOUT 10
CMAKE_ARGS
-DBUILD_TESTING:BOOL=OFF
-DBUILD_SHARED_LIBS:BOOL=OFF
-DAPU_STATIC:BOOL=ON
-DAPR_STATIC:BOOL=ON
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/installs
-DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/installs
# CONFIGURE_COMMAND ""
# BUILD_COMMAND make
# INSTALL_COMMAND make install
UPDATE_COMMAND ""
)
## ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK
## ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK ITS OK
ExternalProject_Add(sqlite
PREFIX "vendor/sqlite/sqlite"
GIT_REPOSITORY https://github.com/sqlite/sqlite.git
GIT_TAG version-3.36.0
SOURCE_DIR "${TD_CONTRIB_DIR}/sqlite"
BINARY_DIR "${TD_CONTRIB_DIR}/sqlite"
#BUILD_IN_SOURCE TRUE
CONFIGURE_COMMAND "./configure"
BUILD_COMMAND "$(MAKE)"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
is this an ARG or smth?
whats going on in the end