1 # Copyright (c) 2014, 2015 JANET(UK)
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions
8 # 1. Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer.
11 # 2. Redistributions in binary form must reproduce the above copyright
12 # notice, this list of conditions and the following disclaimer in the
13 # documentation and/or other materials provided with the distribution.
15 # 3. Neither the name of JANET(UK) nor the names of its contributors
16 # may be used to endorse or promote products derived from this software
17 # without specific prior written permission.
19 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23 # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
24 # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
25 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
28 # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
30 # OF THE POSSIBILITY OF SUCH DAMAGE.
32 cmake_minimum_required(VERSION 2.8)
33 include(GenerateExportHeader)
34 include(GNUInstallDirs)
37 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/ ${CMAKE_CURRENT_BINARY_DIR})
39 add_library(jsongssapi SHARED
40 src/datamodel/GSSDisplayStatus.cpp
41 src/datamodel/GSSName.cpp
42 src/datamodel/GSSOID.cpp
43 src/datamodel/GSSOIDSet.cpp
44 src/datamodel/GSSBuffer.cpp
45 src/datamodel/GSSCredential.cpp
48 src/commands/GSSGetMic.cpp
49 src/commands/GSSInitSecContext.cpp
50 src/commands/GSSCommand.cpp
51 src/commands/GSSImportName.cpp
52 src/commands/GSSAcquireCred.cpp
53 src/commands/GSSDisplayName.cpp
54 src/commands/GSSPseudoRandom.cpp
55 src/commands/GSSWrap.cpp
56 src/commands/GSSUnwrap.cpp
57 src/utils/util_base64.cpp
58 src/utils/util_json.cpp
59 src/utils/util_random.cpp
60 src/cache/GSSContextCache.cpp
61 src/cache/GSSNameCache.cpp
62 src/datamodel/GSSContext.cpp
64 set_target_properties( jsongssapi
65 PROPERTIES SOVERSION 1)
68 GENERATE_EXPORT_HEADER(jsongssapi)
70 add_executable(json_gssapi src/main.cpp)
72 find_package (PkgConfig)
73 pkg_check_modules (GLIB2 glib-2.0)
75 find_package (Jansson)
78 set(JANSSON_LIBRARIES jansson)
81 # deal with gssapi / krb5
83 if ("$ENV{TARGET_CPU}" STREQUAL "x86")
84 set(KRB5_SDK $ENV{ProgramFiles}\\MIT\\Kerberos)
85 set(GSSAPI_LIB ${KRB5_SDK}\\lib\\i386\\gssapi32.lib)
86 elseif ("$ENV{TARGET_CPU}" STREQUAL "x64")
87 set(KRB5_SDK $ENV{PROGRAMW6432}\\MIT\\Kerberos)
88 set(GSSAPI_LIB ${KRB5_SDK}\\lib\\amd64\\gssapi64.lib)
89 else ("$ENV{TARGET_CPU}" STREQUAL "x86")
90 message(FATAL_ERROR "TARGET_CPU '$ENV{TARGET_CPU}' not supported. Did you run setenv.bat?")
91 endif ("$ENV{TARGET_CPU}" STREQUAL "x86")
92 set(KRB5_INCLUDE_DIRS ${KRB5_SDK}\\include;${KRB5_SDK}\\include\\gssapi)
93 set(KRB5_LIBRARIES ${GSSAPI_LIB})
95 set(KRB5_LIBRARIES gssapi_krb5)
98 # openssl / crpyto for random
101 target_link_libraries(jsongssapi crypto)
102 target_link_libraries(json_gssapi crypto)
103 add_definitions(-DHAVE_OPENSSL)
106 if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
107 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
108 elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
109 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror")
112 include_directories(${KRB5_INCLUDE_DIRS} ${JANSSON_INCLUDE_DIRS})
113 target_link_libraries(jsongssapi ${KRB5_LIBRARIES} ${JANSSON_LIBRARIES})
114 target_link_libraries(json_gssapi jsongssapi ${KRB5_LIBRARIES} ${JANSSON_LIBRARIES})
116 set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules/")
118 find_package (CPPUNIT)
119 install(TARGETS json_gssapi jsongssapi
120 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
121 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
124 add_subdirectory(src)
126 add_subdirectory(test)