CMakeLists.txt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. cmake_minimum_required (VERSION 3.2.0)
  2. project (DiscordRPC)
  3. include(GNUInstallDirs)
  4. option(BUILD_EXAMPLES "Build example apps" ON)
  5. # format
  6. file(GLOB_RECURSE ALL_SOURCE_FILES
  7. examples/*.cpp examples/*.h examples/*.c
  8. include/*.h
  9. src/*.cpp src/*.h src/*.c
  10. )
  11. # Set CLANG_FORMAT_SUFFIX if you are using custom clang-format, e.g. clang-format-5.0
  12. find_program(CLANG_FORMAT_CMD clang-format${CLANG_FORMAT_SUFFIX})
  13. if (CLANG_FORMAT_CMD)
  14. add_custom_target(
  15. clangformat
  16. COMMAND ${CLANG_FORMAT_CMD}
  17. -i -style=file -fallback-style=none
  18. ${ALL_SOURCE_FILES}
  19. DEPENDS
  20. ${ALL_SOURCE_FILES}
  21. )
  22. endif(CLANG_FORMAT_CMD)
  23. # thirdparty stuff
  24. execute_process(
  25. COMMAND mkdir ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty
  26. ERROR_QUIET
  27. )
  28. find_file(RAPIDJSONTEST NAMES rapidjson rapidjson-1.1.0 PATHS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty CMAKE_FIND_ROOT_PATH_BOTH)
  29. if (NOT RAPIDJSONTEST)
  30. message("no rapidjson, download")
  31. set(RJ_TAR_FILE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/v1.1.0.tar.gz)
  32. file(DOWNLOAD https://github.com/miloyip/rapidjson/archive/v1.1.0.tar.gz ${RJ_TAR_FILE})
  33. execute_process(
  34. COMMAND ${CMAKE_COMMAND} -E tar xzf ${RJ_TAR_FILE}
  35. WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty
  36. )
  37. file(REMOVE ${RJ_TAR_FILE})
  38. endif(NOT RAPIDJSONTEST)
  39. find_file(RAPIDJSON NAMES rapidjson rapidjson-1.1.0 PATHS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty CMAKE_FIND_ROOT_PATH_BOTH)
  40. add_library(rapidjson STATIC IMPORTED ${RAPIDJSON})
  41. # add subdirs
  42. add_subdirectory(src)
  43. if (BUILD_EXAMPLES)
  44. add_subdirectory(examples/send-presence)
  45. endif(BUILD_EXAMPLES)