CMakeLists.txt 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. cmake_minimum_required(VERSION 3.6)
  2. project(%s LANGUAGES CXX)
  3. set(CMAKE_CXX_STANDARD 11)
  4. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  5. set(CMAKE_BUILD_TYPE RelWithDebInfo)
  6. # Find all the dependencies
  7. find_package(OpenSSL REQUIRED)
  8. set(Workflow_DIR "%s")
  9. find_package(Workflow REQUIRED CONFIG HINTS ${Workflow_DIR})
  10. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR})
  11. # Prefer to static link first
  12. set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ${CMAKE_FIND_LIBRARY_SUFFIXES})
  13. find_library(Workflow_LIB workflow HINTS ${Workflow_DIR}/_lib)
  14. # Set all the libraries here
  15. set(LIB ${Workflow_LIB} pthread OpenSSL::SSL OpenSSL::Crypto)
  16. # Add all the common codes here
  17. set(COMMON_CODE config/config.cc config/Json.cc%s)
  18. # Add header directories and library directories here
  19. include_directories(${OPENSSL_INCLUDE_DIR} ${WORKFLOW_INCLUDE_DIR})
  20. link_directories(${OPENSSL_LINK_DIR} ${WORKFLOW_LIB_DIR})
  21. # Build executable outputs
  22. set(PROJECT_OUTPUT server%s)
  23. foreach(output ${PROJECT_OUTPUT})
  24. add_executable(${output} ${output}_main.cc ${COMMON_CODE})
  25. target_link_libraries(${output} ${LIB})
  26. endforeach()