@@ -8,6 +8,7 @@ project( scitokens-cpp
88
99option ( SCITOKENS_BUILD_UNITTESTS "Build the scitokens-cpp unit tests" OFF )
1010option ( 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 )
1112
1213set ( CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR} /cmake;${CMAKE_MODULE_PATH} " )
1314
@@ -38,7 +39,7 @@ endif()
3839
3940add_library (SciTokens SHARED src/scitokens.cpp src/scitokens_internal.cpp src/scitokens_cache.cpp)
4041target_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> >)
4243target_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} )
4344
4445target_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)
5657#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})
5758target_include_directories (scitokens-test PRIVATE "${PROJECT_SOURCE_DIR} " ${JWT_CPP_INCLUDES} )
5859target_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> >)
6061
6162add_executable (scitokens-verify src/verify.cpp)
6263target_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> >)
6465
6566add_executable (scitokens-test -access src/test_access.cpp)
6667target_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> >)
6869
6970add_executable (scitokens-list-access src/list_access.cpp)
7071target_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> >)
7273
7374add_executable (scitokens-create src/create.cpp)
7475target_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> >)
7677
7778get_directory_property (TARGETS BUILDSYSTEM_TARGETS)
7879install (
0 commit comments