discord-rpc/CMakeLists.txt

75 lines
2 KiB
Text
Raw Normal View History

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
include(GNUInstallDirs)
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)
# 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})
if (CLANG_FORMAT_CMD)
add_custom_target(
clangformat
2017-11-15 19:04:42 +00:00
COMMAND ${CLANG_FORMAT_CMD}
-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(
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)
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})
# add subdirs
2017-06-29 16:17:10 +00:00
add_subdirectory(src)
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)