CMakeLists.txt 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. project(cspot)
  2. cmake_minimum_required(VERSION 2.8.9)
  3. set (CMAKE_CXX_STANDARD 17)
  4. file(GLOB SOURCES "src/*.cpp" "src/*.c")
  5. if (NOT DEFINED ${USE_EXTERNAL_BELL})
  6. add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/bell ${CMAKE_CURRENT_BINARY_DIR}/bell)
  7. endif()
  8. # Add platform specific sources
  9. # if(${ESP_PLATFORM})
  10. # file(GLOB ESP_PLATFORM_SOURCES "src/platform/esp/*.cpp" "src/platform/esp/*.c")
  11. # set(SOURCES ${SOURCES} ${ESP_PLATFORM_SOURCES} )
  12. # endif()
  13. # if(UNIX)
  14. # file(GLOB UNIX_PLATFORM_SOURCES "src/platform/unix/*.cpp" "src/platform/unix/*.c")
  15. # set(SOURCES ${SOURCES} ${UNIX_PLATFORM_SOURCES} )
  16. # endif()
  17. # if(APPLE)
  18. # file(GLOB APPLE_PLATFORM_SOURCES "src/platform/apple/*.cpp" "src/platform/apple/*.c")
  19. # set(SOURCES ${SOURCES} ${APPLE_PLATFORM_SOURCES} )
  20. # endif()
  21. # if(UNIX AND NOT APPLE)
  22. # # file(GLOB LINUX_PLATFORM_SOURCES "src/platform/linux/*.cpp" "src/platform/linux/*.c")
  23. # # set(SOURCES ${SOURCES} ${LINUX_PLATFORM_SOURCES} )
  24. # # endif()
  25. # if(${ESP_PLATFORM})
  26. # list(REMOVE_ITEM SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/CryptoOpenSSL.cpp) # use MBedTLS
  27. # idf_build_set_property(COMPILE_DEFINITIONS "-DCSPOT_USE_MBEDTLS" APPEND)
  28. # set(EXTRA_REQ_LIBS idf::mbedtls idf::pthread idf::mdns)
  29. # add_definitions(-Wunused-const-variable -Wchar-subscripts -Wunused-label -Wmaybe-uninitialized -Wmisleading-indentation)
  30. # else()
  31. # list(REMOVE_ITEM SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/CryptoMbedTLS.cpp) # use OpenSSL
  32. # find_package(OpenSSL REQUIRED)
  33. # if(OPENSSL_FOUND)
  34. # set(OPENSSL_USE_STATIC_LIBS TRUE)
  35. # endif()
  36. # set(EXTRA_REQ_LIBS OpenSSL::Crypto Threads::Threads)
  37. # set(THREADS_PREFER_PTHREAD_FLAG ON)
  38. # find_package(Threads REQUIRED)
  39. # endif()
  40. if(UNIX AND NOT APPLE)
  41. set(EXTRA_REQ_LIBS ${EXTRA_REQ_LIBS} dns_sd) # add apple bonjur compatibility library for linux
  42. # TODO: migrate from this to native linux mDNS
  43. endif()
  44. include_directories("include")
  45. include_directories("${CMAKE_CURRENT_BINARY_DIR}")
  46. include_directories("protos")
  47. message(${CMAKE_CURRENT_SOURCE_DIR}/cmake/generate_protos.sh)
  48. execute_process(COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/cmake/generate_protos.sh" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
  49. set(SOURCES ${SOURCES} "protos/AnyRefImpl.cpp" "protos/ReflectTypeInfo.cpp")
  50. add_library(cspot STATIC ${SOURCES})
  51. target_link_libraries(cspot PRIVATE bell ${EXTRA_REQ_LIBS})
  52. target_include_directories(cspot PUBLIC "include" "protos" bell ${EXTRA_REQ_LIBS} ${CMAKE_CURRENT_BINARY_DIR})