X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=json_gssapi%2FCMakeLists.txt;h=ac6b2648b3de99ec73998b1aa4c16f3430d9523c;hb=ee3148d66441862aa7ed921fb37c812796347163;hp=9d791b218aba52d74e31ecb97f35351028bd87e0;hpb=3b13c3828653d78787eb96c0273ac2605985c41a;p=gssweb.git diff --git a/json_gssapi/CMakeLists.txt b/json_gssapi/CMakeLists.txt index 9d791b2..ac6b264 100644 --- a/json_gssapi/CMakeLists.txt +++ b/json_gssapi/CMakeLists.txt @@ -1,45 +1,83 @@ cmake_minimum_required(VERSION 2.8) - +include(GenerateExportHeader) project(json_gssapi) -include_directories(src/) - -add_executable(json_gssapi src/datamodel/GSSName.cpp - src/datamodel/GSSOID.cpp - src/datamodel/GSSOIDSet.cpp - src/datamodel/GSSBuffer.cpp - src/datamodel/GSSCredential.cpp - src/GSSException.cpp - src/commands/GSSGetMic.cpp - src/commands/GSSCreateSecContextCommand.cpp - src/commands/GSSCommand.cpp - src/commands/GSSImportName.cpp - src/commands/GSSAcquireCred.cpp - src/commands/GSSPseudoRandom.cpp - src/commands/GSSWrap.cpp - src/commands/GSSUnwrap.cpp - src/util_json.cpp - src/cache/GSSContextCache.cpp - src/cache/GSSNameCache.cpp - src/datamodel/GSSContext.cpp - src/util/base64.cpp - main.cpp) -target_link_libraries(json_gssapi gssapi_krb5 jansson crypto) +include_directories(src/ ${CMAKE_CURRENT_BINARY_DIR}) + +add_library(jsongssapi SHARED + src/datamodel/GSSDisplayStatus.cpp + src/datamodel/GSSName.cpp + src/datamodel/GSSOID.cpp + src/datamodel/GSSOIDSet.cpp + src/datamodel/GSSBuffer.cpp + src/datamodel/GSSCredential.cpp + src/GSSException.cpp + src/GSSRequest.cpp + src/commands/GSSGetMic.cpp + src/commands/GSSInitSecContext.cpp + src/commands/GSSCommand.cpp + src/commands/GSSImportName.cpp + src/commands/GSSAcquireCred.cpp + src/commands/GSSDisplayName.cpp + src/commands/GSSPseudoRandom.cpp + src/commands/GSSWrap.cpp + src/commands/GSSUnwrap.cpp + src/util_base64.cpp + src/util_json.cpp + src/util_random.cpp + src/cache/GSSContextCache.cpp + src/cache/GSSNameCache.cpp + src/datamodel/GSSContext.cpp + ) + +GENERATE_EXPORT_HEADER(jsongssapi) + +add_executable(json_gssapi main.cpp) find_package (PkgConfig) pkg_check_modules (GLIB2 glib-2.0) -if (GLIB2_FOUND) - include_directories(${GLIB2_INCLUDE_DIRS}) - target_link_libraries(json_gssapi ${GLIB2_LIBRARIES}) -endif(GLIB2_FOUND) - +find_package (Jansson) +if (JANSSON_FOUND) +else (JANSSON_FOUND) + set(JANSSON_LIBRARIES jansson) +endif (JANSSON_FOUND) + +# deal with gssapi / krb5 +if (WIN32) +set(KRB5_SDK $ENV{PROGRAMW6432}\\MIT\\Kerberos) +message("KRB5_SDK: ${KRB5_SDK}" ) +set(KRB5_INCLUDE_DIRS ${KRB5_SDK}\\include;${KRB5_SDK}\\include\\gssapi) +set(KRB5_LIBRARIES ${KRB5_SDK}\\lib\\amd64\\gssapi64.lib) +else (WIN32) +set(KRB5_LIBRARIES gssapi_krb5) +endif (WIN32) + +# openssl / crpyto for random +if (WIN32) +else (WIN32) +target_link_libraries(jsongssapi crypto) +target_link_libraries(json_gssapi crypto) +add_definitions(-DHAVE_OPENSSL) +endif (WIN32) + +if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX") +elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror") +endif () + +include_directories(${KRB5_INCLUDE_DIRS} ${JANSSON_INCLUDE_DIRS}) +target_link_libraries(jsongssapi ${KRB5_LIBRARIES} ${JANSSON_LIBRARIES}) +target_link_libraries(json_gssapi jsongssapi ${KRB5_LIBRARIES} ${JANSSON_LIBRARIES}) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules/") -FIND_PACKAGE(CPPUNIT REQUIRED) -install(TARGETS json_gssapi RUNTIME DESTINATION bin) +find_package (CPPUNIT) +install(TARGETS json_gssapi jsongssapi + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib) add_subdirectory(src) -add_subdirectory(test) \ No newline at end of file +add_subdirectory(test)