File: CMakeLists.txt

package info (click to toggle)
plast 2.3.2%2Bdfsg-7
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, sid
  • size: 16,300 kB
  • sloc: cpp: 28,980; ansic: 2,075; sh: 478; makefile: 73
file content (88 lines) | stat: -rw-r--r-- 3,738 bytes parent folder | download | duplicates (2)
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
)