2017-11-15 19:04:42 +00:00
|
|
|
cmake_minimum_required (VERSION 3.2.0)
|
2017-07-25 23:00:12 +00:00
|
|
|
project (DiscordRPC)
|
2017-06-29 16:17:10 +00:00
|
|
|
|
2017-11-16 10:57:37 +00:00
|
|
|
include(GNUInstallDirs)
|
|
|
|
|
2017-11-12 21:32:13 +00:00
|
|
|
option(BUILD_EXAMPLES "Build example apps" ON)
|
2017-11-28 18:27:40 +00:00
|
|
|
option(SIGN_BUILD "Sign resulting dll with digital cert" OFF)
|
2017-11-12 21:32:13 +00:00
|
|
|
|
2017-07-25 17:15:42 +00:00
|
|
|
# format
|
|
|
|
file(GLOB_RECURSE ALL_SOURCE_FILES
|
|
|
|
examples/*.cpp examples/*.h examples/*.c
|
|
|
|
include/*.h
|
|
|
|
src/*.cpp src/*.h src/*.c
|
|
|
|
)
|
|
|
|
|
2017-11-15 19:04:42 +00:00
|
|
|
# Set CLANG_FORMAT_SUFFIX if you are using custom clang-format, e.g. clang-format-5.0
|
|
|
|
find_program(CLANG_FORMAT_CMD clang-format${CLANG_FORMAT_SUFFIX})
|
2017-07-25 17:15:42 +00:00
|
|
|
|
|
|
|
if (CLANG_FORMAT_CMD)
|
|
|
|
add_custom_target(
|
|
|
|
clangformat
|
2017-11-15 19:04:42 +00:00
|
|
|
COMMAND ${CLANG_FORMAT_CMD}
|
2017-07-25 17:15:42 +00:00
|
|
|
-i -style=file -fallback-style=none
|
|
|
|
${ALL_SOURCE_FILES}
|
|
|
|
DEPENDS
|
|
|
|
${ALL_SOURCE_FILES}
|
|
|
|
)
|
|
|
|
else(CLANG_FORMAT_CMD)
|
|
|
|
add_custom_target(
|
|
|
|
clangformat
|
|
|
|
COMMENT "no clang format"
|
|
|
|
)
|
|
|
|
endif(CLANG_FORMAT_CMD)
|
|
|
|
|
|
|
|
# thirdparty stuff
|
2017-11-14 15:03:07 +00:00
|
|
|
execute_process(
|
2017-07-11 22:59:14 +00:00
|
|
|
COMMAND mkdir ${CMAKE_SOURCE_DIR}/thirdparty
|
|
|
|
ERROR_QUIET
|
|
|
|
)
|
|
|
|
|
2017-11-14 15:03:07 +00:00
|
|
|
find_file(RAPIDJSONTEST NAMES rapidjson rapidjson-1.1.0 PATHS ${CMAKE_SOURCE_DIR}/thirdparty CMAKE_FIND_ROOT_PATH_BOTH)
|
2017-07-25 18:57:52 +00:00
|
|
|
if (NOT RAPIDJSONTEST)
|
2017-07-11 22:59:14 +00:00
|
|
|
message("no rapidjson, download")
|
|
|
|
set(RJ_TAR_FILE ${CMAKE_SOURCE_DIR}/thirdparty/v1.1.0.tar.gz)
|
|
|
|
file(DOWNLOAD https://github.com/miloyip/rapidjson/archive/v1.1.0.tar.gz ${RJ_TAR_FILE})
|
|
|
|
execute_process(
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E tar xzf ${RJ_TAR_FILE}
|
|
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/thirdparty
|
|
|
|
)
|
|
|
|
file(REMOVE ${RJ_TAR_FILE})
|
2017-07-25 18:57:52 +00:00
|
|
|
endif(NOT RAPIDJSONTEST)
|
|
|
|
|
2017-11-14 15:03:07 +00:00
|
|
|
find_file(RAPIDJSON NAMES rapidjson rapidjson-1.1.0 PATHS ${CMAKE_SOURCE_DIR}/thirdparty CMAKE_FIND_ROOT_PATH_BOTH)
|
2017-07-25 18:57:52 +00:00
|
|
|
|
2017-07-13 15:32:08 +00:00
|
|
|
add_library(rapidjson STATIC IMPORTED ${RAPIDJSON})
|
|
|
|
|
2017-07-25 17:15:42 +00:00
|
|
|
# add subdirs
|
|
|
|
|
2017-06-29 16:17:10 +00:00
|
|
|
add_subdirectory(src)
|
2017-11-12 21:32:13 +00:00
|
|
|
if (BUILD_EXAMPLES)
|
|
|
|
add_subdirectory(examples/send-presence)
|
|
|
|
endif(BUILD_EXAMPLES)
|
2017-11-28 18:27:40 +00:00
|
|
|
|
|
|
|
# sign builds
|
|
|
|
|
|
|
|
if (SIGN_BUILD)
|
|
|
|
if(WIN32)
|
|
|
|
find_program(SIGNTOOL_EXECUTABLE signtool)
|
|
|
|
endif(WIN32)
|
|
|
|
if (APPLE)
|
|
|
|
find_program(SIGNTOOL_EXECUTABLE codesign)
|
|
|
|
endif(APPLE)
|
|
|
|
# todo linux? gpg sign a hash maybe? does anyone care/check these?
|
|
|
|
endif(SIGN_BUILD)
|