@@ -8,6 +8,7 @@ project( scitokens-cpp
8
8
9
9
option ( SCITOKENS_BUILD_UNITTESTS "Build the scitokens-cpp unit tests" OFF )
10
10
option ( SCITOKENS_EXTERNAL_GTEST "Use an external/pre-installed copy of GTest" OFF )
11
+ option ( SCTOKENS_WARNINGS_ARE_ERRORS "Turn compiler warnings into build errors" OFF )
11
12
12
13
set ( CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR} /cmake;${CMAKE_MODULE_PATH} " )
13
14
@@ -38,7 +39,7 @@ endif()
38
39
39
40
add_library (SciTokens SHARED src/scitokens.cpp src/scitokens_internal.cpp src/scitokens_cache.cpp)
40
41
target_compile_features (SciTokens PUBLIC cxx_std_11) # Use at least C++11 for building and when linking to scitokens
41
- target_compile_options (SciTokens PRIVATE $<$<CXX_COMPILER_ID:GNU>:-Wall -Werror>)
42
+ target_compile_options (SciTokens PRIVATE $<$<CXX_COMPILER_ID:GNU>:-Wall $<$< BOOL : ${SCITOKENS_WARNINGS_ARE_ERRORS} >: -Werror> >)
42
43
target_include_directories (SciTokens PUBLIC ${JWT_CPP_INCLUDES} "${PROJECT_SOURCE_DIR} /src" PRIVATE ${CURL_INCLUDES} ${OPENSSL_INCLUDE_DIRS} ${LIBCRYPTO_INCLUDE_DIRS} ${SQLITE_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS} )
43
44
44
45
target_link_libraries (SciTokens PUBLIC ${OPENSSL_LIBRARIES} ${LIBCRYPTO_LIBRARIES} ${CURL_LIBRARIES} ${SQLITE_LIBRARIES} ${UUID_LIBRARIES} )
@@ -56,23 +57,23 @@ add_executable(scitokens-test src/test.cpp)
56
57
#target_include_directories(scitokens-test PRIVATE "${PROJECT_SOURCE_DIR}" ${JWT_CPP_INCLUDES} ${CURL_INCLUDES} ${OPENSSL_INCLUDE_DIRS} ${LIBCRYPTO_INCLUDE_DIRS} ${SQLITE_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS})
57
58
target_include_directories (scitokens-test PRIVATE "${PROJECT_SOURCE_DIR} " ${JWT_CPP_INCLUDES} )
58
59
target_link_libraries (scitokens-test SciTokens)
59
- target_compile_options (scitokens-test PRIVATE $<$<CXX_COMPILER_ID:GNU>:-Wall -Werror>)
60
+ target_compile_options (scitokens-test PRIVATE $<$<CXX_COMPILER_ID:GNU>:-Wall $<$< BOOL : ${SCITOKENS_WARNINGS_ARE_ERRORS} >: -Werror> >)
60
61
61
62
add_executable (scitokens-verify src/verify.cpp)
62
63
target_link_libraries (scitokens-verify SciTokens)
63
- target_compile_options (scitokens-verify PRIVATE $<$<CXX_COMPILER_ID:GNU>:-Wall -Werror>)
64
+ target_compile_options (scitokens-verify PRIVATE $<$<CXX_COMPILER_ID:GNU>:-Wall $<$< BOOL : ${SCITOKENS_WARNINGS_ARE_ERRORS} >: -Werror> >)
64
65
65
66
add_executable (scitokens-test -access src/test_access.cpp)
66
67
target_link_libraries (scitokens-test -access SciTokens)
67
- target_compile_options (scitokens-test -access PRIVATE $<$<CXX_COMPILER_ID:GNU>:-Wall -Werror>)
68
+ target_compile_options (scitokens-test -access PRIVATE $<$<CXX_COMPILER_ID:GNU>:-Wall $<$< BOOL : ${SCITOKENS_WARNINGS_ARE_ERRORS} >: -Werror> >)
68
69
69
70
add_executable (scitokens-list-access src/list_access.cpp)
70
71
target_link_libraries (scitokens-list-access SciTokens)
71
- target_compile_options (scitokens-list-access PRIVATE $<$<CXX_COMPILER_ID:GNU>:-Wall -Werror>)
72
+ target_compile_options (scitokens-list-access PRIVATE $<$<CXX_COMPILER_ID:GNU>:-Wall $<$< BOOL : ${SCITOKENS_WARNINGS_ARE_ERRORS} >: -Werror> >)
72
73
73
74
add_executable (scitokens-create src/create.cpp)
74
75
target_link_libraries (scitokens-create SciTokens)
75
- target_compile_options (scitokens-create PRIVATE $<$<CXX_COMPILER_ID:GNU>:-Wall -Werror>)
76
+ target_compile_options (scitokens-create PRIVATE $<$<CXX_COMPILER_ID:GNU>:-Wall $<$< BOOL : ${SCITOKENS_WARNINGS_ARE_ERRORS} >: -Werror> >)
76
77
77
78
get_directory_property (TARGETS BUILDSYSTEM_TARGETS)
78
79
install (
0 commit comments