First pass at super project build.

This commit is contained in:
James Pace 2021-11-08 04:26:35 +00:00
parent 15ddaa1cb8
commit 15ede8b64f
2 changed files with 40 additions and 3 deletions

View File

@ -1,10 +1,21 @@
cmake_minimum_required(VERSION 3.5)
project(jwp-mosquitto-plugin)
# https://github.com/Sarcasm/cmake-superbuild/
option (USE_SUPERBUILD "Whether or not a superbuild should be invoked" ON)
add_subdirectory(ext/jwt-cpp)
if (USE_SUPERBUILD)
project(jwp-mosquitto-plugin-super)
include(external-deps.cmake)
return()
else()
project(jwp-mosquitto-plugin)
endif()
find_package(jwt-cpp)
find_package(OpenSSL)
add_library(jwp-plugin SHARED src/jwp-plugin.cpp)
add_executable(jwt-example src/jwt-example.cpp)
target_link_libraries(jwt-example PRIVATE jwt-cpp)
target_include_directories(jwt-example PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/jwt-cpp/include)
target_link_libraries(jwt-example OpenSSL::Crypto)

26
external-deps.cmake Normal file
View File

@ -0,0 +1,26 @@
include (ExternalProject)
set (DEPENDENCIES)
set (EXTRA_CMAKE_ARGS)
list(APPEND DEPENDENCIES ep_jwt-cpp)
ExternalProject_Add(ep_jwt-cpp
PREFIX ep_jwt-cpp
GIT_REPOSITORY "https://github.com/Thalhammer/jwt-cpp.git"
GIT_TAG "v0.5.2"
GIT_SHALLOW "True"
CMAKE_ARGS -DJWT_CMAKE_FILES_INSTALL_DIR=${CMAKE_CURRENT_BINARY_DIR}/jwt-cpp -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/jwt-cpp
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/jwt-cpp
)
list (APPEND EXTRA_CMAKE_ARGS
-Djwt-cpp_DIR=${CMAKE_CURRENT_BINARY_DIR}/jwt-cpp
)
ExternalProject_Add (ep_jwp-mosquitto-plugin
PREFIX ep_jwp-mosquitto-plugin
DEPENDS ${DEPENDENCIES}
SOURCE_DIR "${PROJECT_SOURCE_DIR}"
CMAKE_ARGS -DUSE_SUPERBUILD=OFF ${EXTRA_CMAKE_ARGS}
INSTALL_COMMAND ""
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}
)