summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt88
1 files changed, 88 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..9a76bdd
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,88 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(cryptsvc C)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(EXEC_PREFIX "\${prefix}")
+SET(LIBDIR "\${prefix}/lib")
+SET(INCLUDEDIR "\${prefix}/include")
+
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED openssl dlog)
+
+FOREACH(flag ${pkgs_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(source_dir "./srcs")
+SET(include_dir "./include")
+SET(test_dir "./test")
+
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${EXTRA_CFLAGS}")
+
+#ADD_DEFINITIONS("-DCTR_SUPPORT") # for using CTR mode
+#ADD_DEFINITIONS("-DCRYPT_SVC_LOG") # for debug
+#ADD_DEFINITIONS("-DCRYPTOSVC_TARGET") # to get DUK from Target
+
+##################################################################################################################
+# for libcryptsvc.so
+SET(SRCS
+ #${source_dir}/CryptoSvc-debug.c
+ ${source_dir}/SecCryptoSvc.c
+ #${source_dir}/SecKmBase64.c
+)
+
+SET(libcryptsvc_LDFLAGS " -module -avoid-version ${pkgs_LDFLAGS} ")
+SET(libcryptsvc_CFLAGS " ${CFLAGS} -fvisibility=hidden -g -fPIC -I${CMAKE_CURRENT_SOURCE_DIR}/include ")
+SET(libcryptsvc_CPPFLAGS " -DPIC ")
+
+ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
+
+IF("${ARCH}" MATCHES "arm")
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -ldl -lssl -lcrypto -L./libs -lShpSec)
+ELSEIF("${ARCH}" MATCHES "x86")
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -ldl -lssl -lcrypto)
+ENDIF("${ARCH}" MATCHES "arm")
+
+
+SET_TARGET_PROPERTIES(
+ ${PROJECT_NAME}
+ PROPERTIES
+ SOVERSION 0
+ VERSION 0.0.0
+)
+##################################################################################################################
+
+##################################################################################################################
+# for module_test
+#SET(module_test_SOURCES
+ #${test_dir}/module_test.c
+ #${source_dir}/CryptoSvc-debug.c
+#)
+
+#SET(module_test_CFLAGS " -fvisibility=hidden -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include ")
+#SET(module_test_LDFALGS " -module -avoid-version ${pkgs_LDFLAGS} ")
+
+#ADD_EXECUTABLE(${test_dir}/module_test ${module_test_SOURCES})
+#TARGET_LINK_LIBRARIES(${test_dir}/module_test ${pkgs_LDFLAGS} cryptsvc)
+#SET_TARGET_PROPERTIES(${test_dir}/module_test PROPERTIES COMPILE_FLAGS "${module_test_CFLAGS} ")
+##################################################################################################################
+
+#FIND_PROGRAM(UNAME NAMES uname)
+#EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" MATCHES "arm")
+ #ADD_DEFINITIONS("-DTARGET")
+ ADD_DEFINITIONS("-DCRYPTOSVC_TARGET")
+ #MESSAGE("add -DTARGET")
+ENDIF("${ARCH}" MATCHES "arm")
+
+
+CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc)
+INSTALL(FILES ${PROJECT_NAME}.pc DESTINATION lib/pkgconfig)
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib)
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION /usr/include)
+
+ADD_DEFINITIONS(-D_bool_cryptsvc)