Support for windows builds
authorKevin Wasserman <krwasserman@hotmail.com>
Fri, 7 Nov 2014 02:47:00 +0000 (21:47 -0500)
committerKevin Wasserman <krwasserman@hotmail.com>
Mon, 24 Nov 2014 14:21:17 +0000 (09:21 -0500)
json_gssapi/CMakeLists.txt
json_gssapi/src/GSSRequest.h

index 8534075..359492c 100644 (file)
@@ -1,8 +1,8 @@
 cmake_minimum_required(VERSION 2.8)
 cmake_minimum_required(VERSION 2.8)
-
+include(GenerateExportHeader)
 project(json_gssapi)
 
 project(json_gssapi)
 
-include_directories(src/)
+include_directories(src/ ${CMAKE_CURRENT_BINARY_DIR})
 
 add_library(jsongssapi SHARED 
                        src/datamodel/GSSDisplayStatus.cpp 
 
 add_library(jsongssapi SHARED 
                        src/datamodel/GSSDisplayStatus.cpp 
@@ -30,25 +30,46 @@ add_library(jsongssapi SHARED
                        src/datamodel/GSSContext.cpp
                       )
 
                        src/datamodel/GSSContext.cpp
                       )
 
-target_link_libraries(jsongssapi gssapi_krb5 jansson crypto)
+GENERATE_EXPORT_HEADER(jsongssapi)
 
 add_executable(json_gssapi main.cpp)
 
 add_executable(json_gssapi main.cpp)
-target_link_libraries(json_gssapi gssapi_krb5 jansson crypto jsongssapi)
 
 find_package (PkgConfig)
 pkg_check_modules (GLIB2   glib-2.0)
 
 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)
+
+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/")
 
 set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules/")
-FIND_PACKAGE(CPPUNIT REQUIRED)
 
 
+find_package (CPPUNIT)
 install(TARGETS json_gssapi RUNTIME DESTINATION bin)
 
 add_subdirectory(src)
 
 install(TARGETS json_gssapi RUNTIME DESTINATION bin)
 
 add_subdirectory(src)
 
-add_subdirectory(test)
\ No newline at end of file
+add_subdirectory(test)
index 663f799..2d4297e 100644 (file)
@@ -9,7 +9,7 @@
 #define GSSREQUEST_H
 
 #include <string>
 #define GSSREQUEST_H
 
 #include <string>
-
+#include "jsongssapi_export.h"
 #include "commands/GSSCommand.h"
 #include "util_json.h"
 
 #include "commands/GSSCommand.h"
 #include "util_json.h"
 
@@ -18,11 +18,11 @@ using std::string;
 class GSSRequest
 {
 public:
 class GSSRequest
 {
 public:
-  GSSRequest(string jsonString);
-  ~GSSRequest();
+  JSONGSSAPI_EXPORT GSSRequest(string jsonString);
+  JSONGSSAPI_EXPORT ~GSSRequest();
   
   
-  void execute();
-  string getResponse();
+  JSONGSSAPI_EXPORT void execute();
+  JSONGSSAPI_EXPORT string getResponse();
   
 private:
   string      requestString;
   
 private:
   string      requestString;