diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..378eac2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build diff --git a/CMakeLists.txt b/CMakeLists.txt index 9fc3754..b370b05 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,27 +19,28 @@ endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g") -include (FindPkgConfig) if( APPLE ) -# Support homebrew installed openssl -find_library (LIBCRYPTO_LIBRARIES REQUIRED crypto PATHS /usr/local/opt/openssl/lib) -set (LIBCRYPTO_INCLUDE_DIRS /usr/local/opt/openssl/include) + +find_package( OpenSSL REQUIRED ) +find_package( Sqlite3 REQUIRED ) +set(LIBCRYPTO_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR}) +set(LIBCRYPTO_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY}) elseif( UNIX ) +include (FindPkgConfig) pkg_check_modules(LIBCRYPTO REQUIRED libcrypto) +pkg_check_modules(SQLITE REQUIRED sqlite3) endif() -pkg_check_modules(SQLITE REQUIRED sqlite3) - include_directories( "${PROJECT_SOURCE_DIR}" ${JWT_CPP_INCLUDES} ${CURL_INCLUDES} ${LIBCRYPTO_INCLUDE_DIRS} ${SQLITE_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS} ) add_library(SciTokens SHARED src/scitokens.cpp src/scitokens_internal.cpp src/scitokens_cache.cpp) target_link_libraries(SciTokens ${LIBCRYPTO_LIBRARIES} ${CURL_LIBRARIES} ${SQLITE_LIBRARIES} ${UUID_LIBRARIES}) -if ( UNIX ) +if ( NOT APPLE AND UNIX ) set_target_properties(SciTokens PROPERTIES LINK_FLAGS "-Wl,--version-script=${PROJECT_SOURCE_DIR}/configs/export-symbols") endif() diff --git a/cmake/FindSqlite3.cmake b/cmake/FindSqlite3.cmake new file mode 100644 index 0000000..9148750 --- /dev/null +++ b/cmake/FindSqlite3.cmake @@ -0,0 +1,53 @@ +# - Try to find SQLITE3 +# +# SQLITE3_FOUND - system has SQLITE3 +# SQLITE3_INCLUDE_DIRS - the SQLITE3 include directory +# SQLITE3_LIBRARIES - Link these to use SQLITE3 +# + +include(CheckSymbolExists) + +FIND_LIBRARY(SQLITE3_LIBRARY NAMES sqlite) + +find_path(SQLITE3_INCLUDE_DIR + NAMES + sqlite3.h + PATHS + ${SQLITE3_DIR} + $ENV{SQLITE3_DIR} + ~/Library/Frameworks + /Library/Frameworks + /usr/local/include + /usr/include +) + +find_library(SQLITE3_LIBRARY + NAMES + sqlite3 + PATHS + ${SQLITE_DIR} + $ENV{SQLITE_DIR} + ~/Library/Frameworks + /Library/Frameworks +) + +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(SQLITE3 DEFAULT_MSG SQLITE3_LIBRARY SQLITE3_INCLUDE_DIR) + +IF(SQLITE3_FOUND) + + SET(SQLITE3_LIBRARIES ${SQLITE3_LIBRARY}) + SET(SQLITE_LIBRARIES ${SQLITE3_LIBRARY}) + SET(SQLITE3_INCLUDE_DIRS ${SQLITE3_INCLUDE_DIR}) + SET(SQLITE_INCLUDE_DIRS ${SQLITE3_INCLUDE_DIR}) + +ELSE() + + SET(SQLITE_LIBRARIES) + SET(SQLITE3_LIBRARIES) + SET(SQLITE_INCLUDE_DIRS) + SET(SQLITE3_INCLUDE_DIRS) + +endif() + +mark_as_advanced(SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES SQLITE_LIBRARIES SQLITE_INCLUDE_DIRS)