-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
122 lines (100 loc) · 4.8 KB
/
CMakeLists.txt
File metadata and controls
122 lines (100 loc) · 4.8 KB
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
cmake_minimum_required(VERSION 2.6)
if (NOT DEFINED CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build type" )
endif()
if (NOT DEFINED LIBLOGICALACCESS_INCLUDE_DIR)
set(LIBLOGICALACCESS_INCLUDE_DIR "/usr/include" CACHE STRING "LLA Include" )
endif()
if (NOT DEFINED LIBLOGICALACCESS_PLUGINS_DIR)
set(LIBLOGICALACCESS_PLUGINS_DIR "/usr/lib/logicalaccess" CACHE STRING "LLA Lib" )
endif()
project(liblogicalaccess-libnfc)
include(version.cmake)
set(LIBLOGICALACCESS_VERSION_STRING ${LIBLOGICALACCESS_VERSION_MAJOR}.${LIBLOGICALACCESS_VERSION_MINOR}.${LIBLOGICALACCESS_VERSION_PATCH} )
if (MSVC)
if (NOT TARGET_ARCH)
set(TARGET_ARCH "Win32")
endif()
SET(BOOST_LIBRARYDIR ${CMAKE_CURRENT_SOURCE_DIR}/packages/lib/${TARGET_ARCH})
SET(BOOST_INCLUDEDIR ${CMAKE_CURRENT_SOURCE_DIR}/packages/include)
SET(Boost_USE_STATIC_LIBS ON)
SET(LIBNFC_LIBRARYDIR ${CMAKE_CURRENT_SOURCE_DIR}/packages/lib/${TARGET_ARCH})
SET(LIBNFC_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/packages/lib/${TARGET_ARCH})
SET(LIBNFC_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/packages/include)
endif()
list ( APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake )
option ( BUILD_SHARED_LIBS "build shared libraries" ON )
find_package(CXX11 REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_FLAGS}")
find_package(Boost 1.49 REQUIRED COMPONENTS filesystem system date_time)
include_directories(${Boost_INCLUDE_DIRS})
find_package(LibNFC REQUIRED)
include_directories(${LIBNFC_INCLUDE_DIRS})
include_directories(packages/include)
link_directories(${LIBLOGICALACCESS_PLUGINS_DIR})
if(UNIX)
if (DEFINED LIBLOGICALACCESS_INCLUDE_DIRS)
include_directories(${LIBLOGICALACCESS_INCLUDE_DIRS})
else()
set(LIBLOGICALACCESS_INCLUDE_DIRS "/usr/include/")
endif()
LINK_DIRECTORIES(${LINK_DIRECTORIES} "${CMAKE_CURRENT_SOURCE_DIR}/packages/lib")
else()
LINK_DIRECTORIES(${LINK_DIRECTORIES} "${CMAKE_CURRENT_SOURCE_DIR}/packages/lib/${TARGET_ARCH}")
endif()
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set(VC_FOLDER_NAME "Debug")
else()
set(VC_FOLDER_NAME "Release")
endif()
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
add_definitions(-DDEBUG -D_DEBUG)
endif()
add_definitions(-DBOOST_ASIO_NO_IOSTREAM)
if(UNIX)
add_definitions(-DUNIX -DLOGICALACCESS_LOGS)
else()
if (MSVC)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
endif ()
if (TARGET_ARCH STREQUAL "Win32")
add_definitions(-DWIN32 -D_WIN32)
else()
add_definitions(-DWIN64 -D_WIN64)
endif()
SET(VERSION_PRODUCTNAME_VALUE "Liblogicalaccess")
SET(VERSION_PROJECT_FILE_DESCRIPTION_VALUE "${VERSION_PRODUCTNAME_VALUE}\ (${TARGET_ARCH})")
SET(LIBLOGICALACCESS_WINDOWS_VERSION ${LIBLOGICALACCESS_VERSION_MAJOR},${LIBLOGICALACCESS_VERSION_MINOR},${LIBLOGICALACCESS_VERSION_PATCH},0 )
add_definitions(-DVERSION_PROJECT_FILE_DESCRIPTION_VALUE="${VERSION_PROJECT_FILE_DESCRIPTION_VALUE}" -DVERSION_FILE_AND_PRODUCT_VALUE_STRING="${LIBLOGICALACCESS_VERSION_STRING}" -DVERSION_FILE_AND_PRODUCT_VALUE=${LIBLOGICALACCESS_WINDOWS_VERSION})
add_definitions(-DLOGICALACCESS_LOGS -D_USRDLL -DS_WNT -D_CRT_SECURE_NO_WARNINGS -DLIBLOGICALACCESS_EXPORTS)
file(GLOB resourcerc ${CMAKE_CURRENT_SOURCE_DIR}/vc++/resource.rc)
endif()
add_subdirectory(plugins/pluginsreaderproviders)
add_subdirectory(tests)
if ( NOT DEFINED LIBLOGICALACCESS_CMAKE_CONFIG_DIR )
set ( LIBLOGICALACCESS_CMAKE_CONFIG_DIR lib/${LIB_SUFFIX}/cmake/liblogicalaccess )
endif ()
set(LIBLOGICALACCESS_DEFINITIONS "${CXX11_FLAGS}")
set ( LIBLOGICALACCESS_INCLUDE_DIRS ${LIBLOGICALACCESS_INCLUDE_DIR} )
list ( APPEND LIBLOGICALACCESS_INCLUDE_DIRS ${LIBNFC_INCLUDE_DIRS} )
list ( APPEND LIBLOGICALACCESS_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} )
set(LIBLOGICALACCESS_DEFINITIONS "${LIBLOGICALACCESS_DEFINITIONS} -DLOGICALACCESS_LOGS")
if ( UNIX )
set(LIBLOGICALACCESS_DEFINITIONS "${LIBLOGICALACCESS_DEFINITIONS} -DUNIX")
else ()
set(LIBLOGICALACCESS_DEFINITIONS "${LIBLOGICALACCESS_DEFINITIONS} -D_USRDLL -DS_WNT -D_CRT_SECURE_NO_WARNINGS ")
endif ()
list ( REMOVE_DUPLICATES LIBLOGICALACCESS_INCLUDE_DIRS )
set ( LIBLOGICALACCESS_LIBRARIES ${LIBLOGICALACCESS_LIBRARY} ${LIBNFC_LIBRARIES} )
set ( LIBLOGICALACCESS_LIBRARY_DIRS ${CMAKE_INSTALL_PREFIX}/lib/${LIB_SUFFIX} )
list ( APPEND LIBLOGICALACCESS_LIBRARIES ${Boost_LIBRARIES} )
list ( APPEND LIBLOGICALACCESS_LIBRARY_DIRS ${Boost_LIBRARY_DIRS} )
set ( LIBLOGICALACCESS_USE_FILE ${CMAKE_INSTALL_PREFIX}/${LIBLOGICALACCESS_CMAKE_CONFIG_DIR}/UseLibLogicalAccess.cmake )
set ( LIBLOGICALACCESS_ROOT_DIR ${CMAKE_INSTALL_PREFIX} )
configure_file ( cmake/LibLogicalAccessConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LibLogicalAccessConfig.cmake @ONLY )
install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/LibLogicalAccessConfig.cmake cmake/UseLibLogicalAccess.cmake
DESTINATION ${LIBLOGICALACCESS_CMAKE_CONFIG_DIR}
)
if (NOT DEFINED SYSCONF_INSTALL_DIR)
set ( SYSCONF_INSTALL_DIR etc )
endif ()