Created
April 1, 2019 15:36
-
-
Save xn3cr0nx/99bedb10c299e6c249187225cad82c9d to your computer and use it in GitHub Desktop.
cmake file to build up the project
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 characters
| cmake_minimum_required(VERSION 3.0) | |
| project(service) | |
| # Configure required libraries ... | |
| if(UNIX) # Darwin or Linux | |
| set(Boost_USE_STATIC_LIBS ON) | |
| set(BUILD_SHARED_LIBS OFF) | |
| find_package(Boost REQUIRED COMPONENTS system thread log program_options chrono) | |
| find_package(Threads REQUIRED) | |
| find_package(OpenSSL 1.0.1 REQUIRED) | |
| set(OPENSSL_VERSION "1.0.1") | |
| elseif(WIN32) # Windows systems including Win64. | |
| message(FATAL_ERROR "-- Windows is not supported for now.") | |
| else() | |
| message(FATAL_ERROR "-- Unsupported platform sorry! :( ") | |
| endif() | |
| # Configure compiler options ... | |
| if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") | |
| message("-- configuring clang options") | |
| set(CMAKE_CXX_FLAGS "-arch x86_64 -std=c++11 -stdlib=libc++ -DBOOST_LOG_DYN_LINK -Wno-deprecated-declarations") | |
| elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU") | |
| message("-- configuring gcc options") | |
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -DBOOST_LOG_DYN_LINK") | |
| endif() | |
| # Project construction ... | |
| # source files ... | |
| add_executable(${PROJECT_NAME} ./main/main.cpp | |
| ./main/microsvc_controller.cpp | |
| ./main/network_utils.cpp | |
| ./main/basic_controller.cpp) | |
| # headers search paths ... | |
| set(MICROSERVICE_INCLUDE_DIR "./main/include") | |
| set(CPPRESTSDK_INCLUDE_DIR "./libs/cpprestsdk/Release/include") | |
| set(ENTANGLED_INCLUDE_DIR "./libs/entangled") | |
| set(ENTANGLED_BIN_INCLUDE_DIR "./libs/entangled/bazel-bin") | |
| set(KECCAK_INCLUDE_DIR "./libs/entangled/bazel-bin/external/keccak/_virtual_includes/keccak") | |
| set(KECCAK_SPONGE1600_INCLUDE_DIR "./libs/entangled/bazel-bin/external/keccak/_virtual_includes/keccak_sponge_1600") | |
| set(KECCAK_SPONGECOMMON_INCLUDE_DIR "./libs/entangled/bazel-bin/external/keccak/_virtual_includes/keccak_sponge_common") | |
| set(KECCAK_SNP1600_INCLUDE_DIR "./libs/entangled/bazel-bin/external/keccak/_virtual_includes/snp_1600_reference") | |
| set(ALIGN_INCLUDE_DIR "./libs/entangled/bazel-bin/external/keccak/_virtual_includes/common") | |
| set(DEPS_INCLUDE_DIR "./libs/include") | |
| set(HEADER_SEARCH_PATHS | |
| ${MICROSERVICE_INCLUDE_DIR} | |
| ${OPENSSL_INCLUDE_DIR} | |
| ${CPPRESTSDK_INCLUDE_DIR} | |
| ${ENTANGLED_INCLUDE_DIR} | |
| ${ENTANGLED_BIN_INCLUDE_DIR} | |
| ${Boost_INCLUDE_DIR} | |
| ${OPENSSL_INCLUDE_DIR} | |
| ${KECCAK_INCLUDE_DIR} | |
| ${KECCAK_SPONGECOMMON_INCLUDE_DIR} | |
| ${KECCAK_SPONGE1600_INCLUDE_DIR} | |
| ${KECCAK_SNP1600_INCLUDE_DIR} | |
| ${ALIGN_INCLUDE_DIR} | |
| ${DEPS_INCLUDE_DIR} | |
| ) | |
| set(OPENSSL_LIBS "${OPENSSL_LIBRARIES}") | |
| set(Boost_LIBRARIES "${Boost_LIBRARIES}") | |
| set(ZIP_LIBRARY "/usr/local/Cellar/zlib/1.2.11/lib/libz.dylib") | |
| set(CPPRESTSDK_LIBRARY "${PROJECT_SOURCE_DIR}/libs/cpprestsdk/build.release/Binaries/libcpprest.a") | |
| set(static_mam "${PROJECT_SOURCE_DIR}/libs/include/libmam.a") | |
| set(LIBRARIES_SEARCH_PATHS | |
| ${OPENSSL_LIBS} | |
| ${Boost_LIBRARIES} | |
| ${CPPRESTSDK_LIBRARY} | |
| ${static_mam} | |
| ) | |
| include_directories(${HEADER_SEARCH_PATHS}) | |
| target_link_libraries(${PROJECT_NAME} ${LIBRARIES_SEARCH_PATHS} "-static-libgcc -static-libstdc++ -static -ldl -lssl -lcrypto") | |
| # set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "-Wa, -F/Library/Frameworks") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment