mirror of
https://github.com/arun11299/cpp-jwt.git
synced 2025-05-14 08:48:31 +00:00
build: improve cmake scripts
This commit is contained in:
parent
ce85f791ba
commit
de69fd2133
4 changed files with 90 additions and 38 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/build/
|
|
@ -1,26 +1,73 @@
|
|||
# CMakeLists files in this project can
|
||||
# refer to the root source directory of the project as ${HELLO_SOURCE_DIR} and
|
||||
# to the root binary directory of the project as ${HELLO_BINARY_DIR}.
|
||||
cmake_minimum_required(VERSION 3.5.0)
|
||||
project(cpp-jwt)
|
||||
|
||||
cmake_minimum_required (VERSION 2.8.11)
|
||||
project (cpp-jwt)
|
||||
option(CPP_JWT_BUILD_EXAMPLES "build examples" ON)
|
||||
option(CPP_JWT_BUILD_TESTS "build examples" ON)
|
||||
|
||||
#SET (CMAKE_CXX_COMPILER /usr/local/bin/g++)
|
||||
SET( CMAKE_CXX_FLAGS "-std=c++14 -Wall -Wextra" )
|
||||
# only set compiler flags if we are the main project, otherwise let the main
|
||||
# project decide on the flags
|
||||
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Wextra")
|
||||
else()
|
||||
|
||||
include_directories (include)
|
||||
endif()
|
||||
|
||||
find_package(OpenSSL REQUIRED)
|
||||
include_directories(${OPENSSL_INCLUDE_DIR})
|
||||
|
||||
find_package(GTest REQUIRED)
|
||||
include_directories(${GTEST_INCLUDE_DIRS})
|
||||
# ##############################################################################
|
||||
# LIBRARY
|
||||
# ##############################################################################
|
||||
|
||||
enable_testing()
|
||||
add_library(${PROJECT_NAME} INTERFACE)
|
||||
target_include_directories(
|
||||
${PROJECT_NAME}
|
||||
INTERFACE $<BUILD_INTERFACE:${${PROJECT_NAME}_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
||||
target_link_libraries(${PROJECT_NAME} INTERFACE OpenSSL::SSL)
|
||||
target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_14)
|
||||
|
||||
# Recurse into the "Hello" and "Demo" subdirectories. This does not actually
|
||||
# cause another cmake executable to run. The same process will walk through
|
||||
# the project's entire directory structure.
|
||||
add_subdirectory (tests)
|
||||
# ##############################################################################
|
||||
# TESTS
|
||||
# ##############################################################################
|
||||
|
||||
add_subdirectory (examples)
|
||||
if(CPP_JWT_BUILD_TESTS)
|
||||
find_package(GTest REQUIRED)
|
||||
include_directories(${GTEST_INCLUDE_DIRS})
|
||||
enable_testing()
|
||||
# Recurse into the "Hello" and "Demo" subdirectories. This does not actually
|
||||
# cause another cmake executable to run. The same process will walk through
|
||||
# the project's entire directory structure.
|
||||
add_subdirectory(tests)
|
||||
endif()
|
||||
|
||||
# ##############################################################################
|
||||
# EXAMPLES
|
||||
# ##############################################################################
|
||||
|
||||
if(CPP_JWT_BUILD_EXAMPLES)
|
||||
add_subdirectory(examples)
|
||||
endif()
|
||||
|
||||
# ##############################################################################
|
||||
# INSTALL
|
||||
# ##############################################################################
|
||||
|
||||
include(GNUInstallDirs)
|
||||
install(
|
||||
TARGETS ${PROJECT_NAME}
|
||||
EXPORT ${PROJECT_NAME}_Targets
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
|
||||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/jwt/detail
|
||||
DESTINATION include/jwt)
|
||||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/jwt/impl
|
||||
DESTINATION include/jwt)
|
||||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/jwt/json
|
||||
DESTINATION include/jwt)
|
||||
install(
|
||||
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/jwt/
|
||||
DESTINATION include/jwt
|
||||
FILES_MATCHING
|
||||
PATTERN "*.hpp")
|
||||
|
|
|
@ -1,18 +1,24 @@
|
|||
|
||||
include_directories(${OPENSSL_INCLUDE_DIR})
|
||||
|
||||
SET(CERT_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/rsa_256")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCERT_ROOT_DIR=\"\\\"${CERT_ROOT_DIR}\\\"\"")
|
||||
set(CERT_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/rsa_256")
|
||||
set(CMAKE_CXX_FLAGS
|
||||
"${CMAKE_CXX_FLAGS} -DCERT_ROOT_DIR=\"\\\"${CERT_ROOT_DIR}\\\"\"")
|
||||
|
||||
add_executable(simple_ex1 simple_ex1.cc)
|
||||
target_link_libraries(simple_ex1 ${OPENSSL_LIBRARIES} ${GTEST_LIBRARIES})
|
||||
add_test(NAME simple_ex1 COMMAND ./simple_ex1 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
target_link_libraries(simple_ex1 OpenSSL::SSL ${PROJECT_NAME})
|
||||
add_test(
|
||||
NAME simple_ex1
|
||||
COMMAND ./simple_ex1
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
add_executable(simple_ex2 simple_ex2.cc)
|
||||
target_link_libraries(simple_ex2 ${OPENSSL_LIBRARIES} ${GTEST_LIBRARIES})
|
||||
add_test(NAME simple_ex2 COMMAND ./simple_ex2 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
target_link_libraries(simple_ex2 OpenSSL::SSL ${PROJECT_NAME})
|
||||
add_test(
|
||||
NAME simple_ex2
|
||||
COMMAND ./simple_ex2
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
add_executable(simple_ex3_rsa simple_ex3_rsa.cc)
|
||||
target_link_libraries(simple_ex3_rsa ${OPENSSL_LIBRARIES} ${GTEST_LIBRARIES})
|
||||
add_test(NAME simple_ex3_rsa COMMAND ./simple_ex3_rsa WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
target_link_libraries(simple_ex3_rsa OpenSSL::SSL ${PROJECT_NAME})
|
||||
add_test(
|
||||
NAME simple_ex3_rsa
|
||||
COMMAND ./simple_ex3_rsa
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
|
|
@ -1,33 +1,31 @@
|
|||
|
||||
include_directories(${OPENSSL_INCLUDE_DIR})
|
||||
|
||||
SET(CERT_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/certs")
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCERT_ROOT_DIR=\"\\\"${CERT_ROOT_DIR}\\\"\"")
|
||||
|
||||
add_executable(test_jwt_object test_jwt_object.cc)
|
||||
target_link_libraries(test_jwt_object ${OPENSSL_LIBRARIES} ${GTEST_LIBRARIES})
|
||||
target_link_libraries(test_jwt_object OpenSSL::SSL GTest::GTest GTest::Main ${PROJECT_NAME})
|
||||
add_test(NAME test_jwt_object COMMAND ./test_jwt_object WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
add_executable(test_jwt_encode test_jwt_encode.cc)
|
||||
target_link_libraries(test_jwt_encode ${OPENSSL_LIBRARIES} ${GTEST_LIBRARIES})
|
||||
target_link_libraries(test_jwt_encode OpenSSL::SSL GTest::GTest GTest::Main ${PROJECT_NAME})
|
||||
add_test(NAME test_jwt_encode COMMAND ./test_jwt_encode WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
add_executable(test_jwt_decode test_jwt_decode.cc)
|
||||
target_link_libraries(test_jwt_decode ${OPENSSL_LIBRARIES} ${GTEST_LIBRARIES})
|
||||
target_link_libraries(test_jwt_decode OpenSSL::SSL GTest::GTest GTest::Main ${PROJECT_NAME})
|
||||
add_test(NAME test_jwt_decode COMMAND ./test_jwt_decode WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
add_executable(test_jwt_decode_verifiy test_jwt_decode_verifiy.cc)
|
||||
target_link_libraries(test_jwt_decode_verifiy ${OPENSSL_LIBRARIES} ${GTEST_LIBRARIES})
|
||||
target_link_libraries(test_jwt_decode_verifiy OpenSSL::SSL GTest::GTest GTest::Main ${PROJECT_NAME})
|
||||
add_test(NAME test_jwt_decode_verifiy COMMAND ./test_jwt_decode_verifiy WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
add_executable(test_jwt_decode_verifiy_with_exception test_jwt_decode_verifiy_with_exception.cc)
|
||||
target_link_libraries(test_jwt_decode_verifiy_with_exception ${OPENSSL_LIBRARIES} ${GTEST_LIBRARIES})
|
||||
target_link_libraries(test_jwt_decode_verifiy_with_exception OpenSSL::SSL GTest::GTest GTest::Main ${PROJECT_NAME})
|
||||
add_test(NAME test_jwt_decode_verifiy_with_exception COMMAND ./test_jwt_decode_verifiy_with_exception WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
add_executable(test_jwt_rsa test_jwt_rsa.cc)
|
||||
target_link_libraries(test_jwt_rsa ${OPENSSL_LIBRARIES} ${GTEST_LIBRARIES} )
|
||||
target_link_libraries(test_jwt_rsa OpenSSL::SSL GTest::GTest GTest::Main ${PROJECT_NAME})
|
||||
add_test(NAME test_jwt_rsa COMMAND ./test_jwt_rsa WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
add_executable(test_jwt_es test_jwt_es.cc)
|
||||
target_link_libraries(test_jwt_es ${OPENSSL_LIBRARIES} ${GTEST_LIBRARIES})
|
||||
target_link_libraries(test_jwt_es OpenSSL::SSL GTest::GTest GTest::Main ${PROJECT_NAME})
|
||||
add_test(NAME test_jwt_es COMMAND ./test_jwt_es WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue