Created
November 27, 2023 16:58
Revisions
-
doevelopper created this gist
Nov 27, 2023 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,305 @@ ```json { "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", }, ] } ``` ```cmake 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 "" ) ```