Skip to content

Instantly share code, notes, and snippets.

@OlegJakushkin
Created February 22, 2020 10:58
Show Gist options
  • Save OlegJakushkin/2cdce5290db80471a18f342c189fe778 to your computer and use it in GitHub Desktop.
Save OlegJakushkin/2cdce5290db80471a18f342c189fe778 to your computer and use it in GitHub Desktop.
Stellar CMake
cmake_minimum_required(VERSION 3.7)
project(stellar_core)
# first export CMAKE_C_COMPILER=clang
# first export CMAKE_CXX_COMPILER=clang++
# then
# ./autogen.sh && ./configure
set(CMAKE_CXX_STANDARD 14)
execute_process (
COMMAND grep -c ^processor /proc/cpuinfo
OUTPUT_VARIABLE thread_num
)
message(thread_num: ${thread_num})
set( CMAKE_CXX_FLAGS "-fpermissive -m64 -g -std=c++14" )
add_custom_target(stellar_core ALL COMMAND make -j ${thread_num} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
include_directories(.)
include_directories(lib)
include_directories(lib/asio/asio/include)
include_directories(lib/asio/asio/src)
include_directories(lib/autocheck)
include_directories(lib/autocheck/include)
include_directories(lib/autocheck/include/autocheck)
include_directories(lib/cereal/include)
include_directories(lib/cereal/include/cereal)
include_directories(lib/cereal/include/cereal/archives)
include_directories(lib/cereal/include/cereal/details)
include_directories(lib/cereal/include/cereal/external)
include_directories(lib/cereal/include/cereal/external/rapidjson)
include_directories(lib/cereal/include/cereal/external/rapidjson/error)
include_directories(lib/cereal/include/cereal/external/rapidjson/internal)
include_directories(lib/cereal/include/cereal/external/rapidjson/msinttypes)
include_directories(lib/cereal/include/cereal/external/rapidxml)
include_directories(lib/cereal/include/cereal/types)
include_directories(lib/cereal/include/cereal/types/concepts)
include_directories(lib/cereal/sandbox/sandbox_shared_lib)
include_directories(lib/cereal/unittests)
include_directories(lib/http)
include_directories(lib/json)
include_directories(lib/libmedida/src)
include_directories(lib/libmedida/test/gtest-1.6.0/fused-src/gtest)
include_directories(lib/libmedida/test/gtest-1.6.0/include)
include_directories(lib/libmedida/test/gtest-1.6.0/include/gtest)
include_directories(lib/libmedida/test/gtest-1.6.0/include/gtest/internal)
include_directories(lib/libmedida/test/gtest-1.6.0/samples)
include_directories(lib/libmedida/test/gtest-1.6.0/src)
include_directories(lib/libmedida/test/gtest-1.6.0/test)
include_directories(lib/libmedida/test/gtest-1.6.0/xcode/Samples/FrameworkSample)
include_directories(lib/libsodium/src/libsodium/include)
include_directories(lib/libsodium/builds)
include_directories(lib/libsodium/builds/msvc)
include_directories(lib/libsodium/src)
include_directories(lib/libsodium/test/default)
include_directories(lib/libsodium/test/quirks)
include_directories(lib/soci/src/backends/postgresql)
include_directories(lib/soci/src/backends/sqlite3)
include_directories(lib/soci/src/core)
include_directories(lib/sqlite)
include_directories(lib/util)
include_directories(lib/xdrpp)
include_directories(lib/xdrpp/compat)
include_directories(lib/xdrpp/msvc_xdrpp)
include_directories(lib/xdrpp/msvc_xdrpp/include)
include_directories(lib/xdrpp/msvc_xdrpp/include/xdrpp)
include_directories(lib/xdrpp/xdrc)
include_directories(lib/xdrpp/xdrpp)
include_directories(src)
set(sourcedir src)
set(sourcefiles ${sourcedir}/*.cpp)
set(headerfiles ${sourcedir}/*.h*)
set(sourcedir2 lib)
set(sourcefiles2 ${sourcedir2}/*.cpp)
set(headerfiles2 ${sourcedir2}/*.h*)
file(GLOB_RECURSE sources ${sourcefiles})
file(GLOB_RECURSE headers ${headerfiles})
file(GLOB_RECURSE sources2 ${sourcefiles2})
file(GLOB_RECURSE headers2 ${headerfiles2})
list(REMOVE_ITEM sources "src/catchup/CatchupWork.cpp")
list(REMOVE_ITEM sources2 "lib/util/siphash.cpp")
list(REMOVE_ITEM sources "src/crypto/ShortHash.cpp")
list(REMOVE_ITEM sources "src/crypto/test/ShortHashTests.cpp")
list(REMOVE_ITEM sources "src/catchup/ApplyBufferedLedgersWork.cpp")
list(REMOVE_ITEM sources "src/catchup/ApplyLedgerWork.cpp")
list(REMOVE_ITEM sources "src/ledger/InMemoryLedgerTxnRoot.cpp")
list(REMOVE_ITEM headers "src/catchup/CatchupWork.h")
list(REMOVE_ITEM headers2 "lib/util/siphash.h")
list(REMOVE_ITEM headers "src/crypto/ShortHash.h")
list(REMOVE_ITEM headers "src/crypto/test/ShortHashTests.h")
list(REMOVE_ITEM headers "src/catchup/ApplyBufferedLedgersWork.h")
list(REMOVE_ITEM headers "src/catchup/ApplyLedgerWork.h")
list(REMOVE_ITEM headers "src/ledger/InMemoryLedgerTxnRoot.h")
list(REMOVE_ITEM sources "src/historywork/VerifyTxResultsWork.cpp")
list(REMOVE_ITEM sources "src/historywork/DownloadVerifyTxResultsWork.cpp")
list(REMOVE_ITEM headers "src/ledger/InMemoryLedgerTxnRoot.h")
list(REMOVE_ITEM headers "src/historywork/VerifyTxResultsWork.h")
list(REMOVE_ITEM headers "src/historywork/DownloadVerifyTxResultsWork.h")
list(REMOVE_ITEM headers "src/crypto/XDRHasher.h")
list(REMOVE_ITEM headers "src/crypto/ShortHash.h")
list(REMOVE_ITEM headers "src/catchup/ApplyLedgerWork.h")
list(REMOVE_ITEM headers "src/catchup/ApplyBufferedLedgersWork.h")
list(REMOVE_ITEM headers2 "lib/util/siphash.h")
list(REMOVE_ITEM sources "src/ledger/InMemoryLedgerTxnRoot.cpp")
list(REMOVE_ITEM sources "src/historywork/VerifyTxResultsWork.cpp")
list(REMOVE_ITEM sources "src/historywork/DownloadVerifyTxResultsWork.cpp")
list(REMOVE_ITEM sources "src/ledger/test/LedgerCloseMetaStreamTests.cpp")
list(REMOVE_ITEM sources "src/crypto/test/ShortHashTests.cpp")
list(REMOVE_ITEM sources "src/crypto/ShortHash.cpp")
list(REMOVE_ITEM sources "src/catchup/ApplyLedgerWork.cpp")
list(REMOVE_ITEM sources "src/catchup/ApplyBufferedLedgersWork.cpp")
list(REMOVE_ITEM sources "lib/util/siphash.cpp")
list(REMOVE_ITEM headers "src/historywork/DownloadVerifyTxResultsWork.h")
list(REMOVE_ITEM headers "src/historywork/VerifyTxResultsWork.h")
list(REMOVE_ITEM headers2 "lib/util/siphash.h")
list(REMOVE_ITEM headers "src/crypto/ShortHash.h")
list(REMOVE_ITEM headers "src/crypto/XDRHasher.h")
list(REMOVE_ITEM headers "src/catchup/ApplyBufferedLedgersWork.h")
list(REMOVE_ITEM headers "src/catchup/ApplyLedgerWork.h")
list(REMOVE_ITEM headers "src/ledger/InMemoryLedgerTxnRoot.h")
list(REMOVE_ITEM sources "src/ledger/test/LedgerCloseMetaStreamTests.cpp")
add_executable(highlighter EXCLUDE_FROM_ALL ${sources} ${headers} ${sources2} ${headers2} config.h)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment