1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
project(PlastLibrary)
################################################################################
# CMake required
################################################################################
cmake_minimum_required (VERSION 2.6)
find_package (JNI REQUIRED)
################################################################################
# PLAST release number
################################################################################
set (plast_VERSION_MAJOR 2)
set (plast_VERSION_MINOR 3)
set (plast_VERSION_PATCH 2)
set (plast-version ${plast_VERSION_MAJOR}.${plast_VERSION_MINOR}.${plast_VERSION_PATCH})
set (plast-date $ENV{BDATE})
################################################################################
# update date pattern with real value
################################################################################
#INCLUDE(FindPerl)
# We execute a command that retrieves the current date.
#IF (PERL_FOUND)
# EXECUTE_PROCESS (
# COMMAND "${PERL_EXECUTABLE}" "-le" "@T=localtime; printf (\"%04d-%02d-%02d %02d:%02d:%02d\",$T[5]+1900,$T[4]+1,$T[3],$T[2],$T[1],$T[0])"
# OUTPUT_VARIABLE plast-date
# )
#ENDIF (PERL_FOUND)
################################################################################
# set files
################################################################################
set (LIBRARY_OUTPUT_PATH lib/${CMAKE_BUILD_TYPE})
set (EXECUTABLE_OUTPUT_PATH bin/${CMAKE_BUILD_TYPE})
file (GLOB_RECURSE PlastLibraryFiles src/*)
list (SORT PlastLibraryFiles)
file (GLOB_RECURSE PlastCmdFiles src/*)
list (SORT PlastCmdFiles)
################################################################################
# prepare targets
################################################################################
add_definitions (-O3 -funroll-loops -fomit-frame-pointer )
include_directories (${PROJECT_BINARY_DIR}/include ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
add_library (PlastLibrary SHARED ${PlastLibraryFiles} )
add_executable (plast ${PlastCmdFiles})
target_link_libraries (plast pthread pcre)
################################################################################
# OS specific stuffs
################################################################################
IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
add_definitions(-D__DARWIN__)
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
add_definitions(-D__LINUX__)
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
IF(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
add_definitions(-D__WINDOWS__)
# IMPORTANT ! we have to add this flag for getting correct methods names in the library
# otherwise the Java JVM won't find the native JNI methods.
set_target_properties (PlastLibrary PROPERTIES LINK_FLAGS -Wl,--kill-at)
set_target_properties (PlastLibrary PROPERTIES PREFIX "")
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
################################################################################
# HEADERS COPY
################################################################################
file (COPY ${PROJECT_SOURCE_DIR}/src/
DESTINATION ${PROJECT_BINARY_DIR}/include
FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h" PATTERN "*.pri"
)
install (DIRECTORY ${PROJECT_SOURCE_DIR}/src/ DESTINATION include FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h" PATTERN "*.pri")
################################################################################
# CONFIGURATION FILE
################################################################################
configure_file (
${PROJECT_SOURCE_DIR}/src/misc/api/version.hpp.in
${PROJECT_BINARY_DIR}/include/misc/api/version.hpp
)
|