install jsongssapi shared libray
[gssweb.git] / json_gssapi / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.8)
2 include(GenerateExportHeader)
3 project(json_gssapi)
4
5 include_directories(src/ ${CMAKE_CURRENT_BINARY_DIR})
6
7 add_library(jsongssapi SHARED 
8                        src/datamodel/GSSDisplayStatus.cpp 
9                        src/datamodel/GSSName.cpp
10                        src/datamodel/GSSOID.cpp
11                        src/datamodel/GSSOIDSet.cpp
12                        src/datamodel/GSSBuffer.cpp
13                        src/datamodel/GSSCredential.cpp
14                        src/GSSException.cpp
15                        src/GSSRequest.cpp 
16                        src/commands/GSSGetMic.cpp
17                        src/commands/GSSInitSecContext.cpp
18                        src/commands/GSSCommand.cpp 
19                        src/commands/GSSImportName.cpp
20                        src/commands/GSSAcquireCred.cpp 
21                        src/commands/GSSDisplayName.cpp
22                        src/commands/GSSPseudoRandom.cpp
23                        src/commands/GSSWrap.cpp  
24                        src/commands/GSSUnwrap.cpp
25                        src/util_base64.cpp
26                        src/util_json.cpp
27                        src/util_random.cpp
28                        src/cache/GSSContextCache.cpp
29                        src/cache/GSSNameCache.cpp
30                        src/datamodel/GSSContext.cpp
31                       )
32
33 GENERATE_EXPORT_HEADER(jsongssapi)
34
35 add_executable(json_gssapi main.cpp)
36
37 find_package (PkgConfig)
38 pkg_check_modules (GLIB2   glib-2.0)
39
40 find_package (Jansson)
41 if (JANSSON_FOUND)
42 else (JANSSON_FOUND)
43   set(JANSSON_LIBRARIES jansson)
44 endif (JANSSON_FOUND)
45
46 # deal with gssapi / krb5
47 if (WIN32)
48 set(KRB5_SDK $ENV{PROGRAMW6432}\\MIT\\Kerberos)
49 message("KRB5_SDK: ${KRB5_SDK}" )
50 set(KRB5_INCLUDE_DIRS ${KRB5_SDK}\\include;${KRB5_SDK}\\include\\gssapi)
51 set(KRB5_LIBRARIES ${KRB5_SDK}\\lib\\amd64\\gssapi64.lib)
52 else (WIN32)
53 set(KRB5_LIBRARIES gssapi_krb5)
54 endif (WIN32)
55
56 # openssl / crpyto for random
57 if (WIN32)
58 else (WIN32)
59 target_link_libraries(jsongssapi crypto)
60 target_link_libraries(json_gssapi crypto)
61 add_definitions(-DHAVE_OPENSSL)
62 endif (WIN32)
63
64 if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
65   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
66 elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
67   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror")
68 endif ()
69
70 include_directories(${KRB5_INCLUDE_DIRS} ${JANSSON_INCLUDE_DIRS})
71 target_link_libraries(jsongssapi ${KRB5_LIBRARIES} ${JANSSON_LIBRARIES})
72 target_link_libraries(json_gssapi jsongssapi ${KRB5_LIBRARIES} ${JANSSON_LIBRARIES})
73
74 set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules/")
75
76 find_package (CPPUNIT)
77 install(TARGETS json_gssapi jsongssapi
78         RUNTIME DESTINATION bin
79         LIBRARY DESTINATION lib)
80
81 add_subdirectory(src)
82
83 add_subdirectory(test)