Skip to content

Commit e61d701

Browse files
Christian Emmerichpiedar
Christian Emmerich
authored andcommitted
Fix cmake module include order
Fix cpack user option on linux Separate cpack options for different generators and add tgz generator Add cmake config file Fixes #355 Signed-off-by: Benn Snyder <[email protected]>
1 parent d9cc2b2 commit e61d701

File tree

2 files changed

+37
-14
lines changed

2 files changed

+37
-14
lines changed

CMakeLists.txt

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,19 @@ set(PYTHON_EXECUTABLE "python2")
3939

4040
PROJECT(libfreenect)
4141

42+
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/")
43+
44+
# Find the host operating system and architecture
45+
include (FindOS)
46+
# Set up installation directories
47+
include (SetupDirectories)
48+
4249
set (PROJECT_VER_MAJOR 0)
4350
set (PROJECT_VER_MINOR 4)
4451
set (PROJECT_VER_PATCH 1)
45-
set (PROJECT_VER
52+
set (PROJECT_VER
4653
"${PROJECT_VER_MAJOR}.${PROJECT_VER_MINOR}.${PROJECT_VER_PATCH}")
47-
set (PROJECT_APIVER
54+
set (PROJECT_APIVER
4855
"${PROJECT_VER_MAJOR}.${PROJECT_VER_MINOR}")
4956

5057
OPTION(BUILD_AUDIO "Build audio support" OFF)
@@ -58,20 +65,15 @@ OPTION(BUILD_AS3_SERVER "Build the Actionscript 3 Server Example" OFF)
5865
OPTION(BUILD_PYTHON "Build Python extension" OFF)
5966
OPTION(BUILD_OPENNI2_DRIVER "Build libfreenect driver for OpenNI2" OFF)
6067
IF(PROJECT_OS_LINUX)
61-
OPTION(BUILD_CPACK "Build an RPM or DEB using CPack" OFF)
68+
OPTION(BUILD_CPACK_DEB "Build an DEB using CPack" OFF)
69+
OPTION(BUILD_CPACK_RPM "Build an RPM using CPack" OFF)
70+
OPTION(BUILD_CPACK_TGZ "Build an TGZ using CPack" OFF)
6271
ENDIF(PROJECT_OS_LINUX)
6372

6473
######################################################################################
6574
# Dependencies and Definitions
6675
######################################################################################
6776

68-
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/")
69-
70-
# Find the host operating system and architecture
71-
include (FindOS)
72-
# Set up installation directories
73-
include (SetupDirectories)
74-
7577
# Find packages needed to build library
7678
find_package(libusb-1.0 REQUIRED)
7779

@@ -93,7 +95,7 @@ else(WIN32)
9395
endif()
9496

9597
######################################################################################
96-
# CMake
98+
# CMake
9799
######################################################################################
98100

99101
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
@@ -177,13 +179,17 @@ configure_file(
177179
"${CMAKE_CURRENT_BINARY_DIR}/UninstallTarget.cmake"
178180
IMMEDIATE @ONLY)
179181

182+
# --- cmake config file ---
183+
CONFIGURE_FILE(libfreenectConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/libfreenectConfig.cmake @ONLY)
184+
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libfreenectConfig.cmake DESTINATION share/${PROJECT_NAME})
185+
180186
add_custom_target(uninstall
181187
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/UninstallTarget.cmake)
182188

183189
# Create Debian/RPM Packages
184190
# after make, use "fakeroot cpack" in the build Dir to complete
185191

186-
IF ( BUILD_CPACK )
192+
IF ( BUILD_CPACK_TGZ OR BUILD_CPACK_DEB OR BUILD_CPACK_RPM )
187193
set(CPACK_PACKAGE_DESCRIPTION "libfreenect for kinect")
188194
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "libfreenect library for using kinect")
189195
set(CPACK_PACKAGE_NAME "libfreenect-dev")
@@ -196,7 +202,16 @@ IF ( BUILD_CPACK )
196202
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VER_PATCH})
197203
set(VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
198204

199-
set(CPACK_GENERATOR "DEB;RPM;")
205+
set(CPACK_GENERATOR "")
206+
if (BUILD_CPACK_TGZ)
207+
list(APPEND CPACK_GENERATOR "TGZ")
208+
endif()
209+
if (BUILD_CPACK_RPM)
210+
list(APPEND CPACK_GENERATOR "RPM")
211+
endif()
212+
if (BUILD_CPACK_DEB)
213+
list(APPEND CPACK_GENERATOR "DEB")
214+
endif()
200215
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}-${CMAKE_SYSTEM_PROCESSOR}")
201216

202217
include(CPack)
@@ -211,5 +226,5 @@ IF ( BUILD_CPACK )
211226
INSTALL(FILES "GPL2" DESTINATION "share/doc/${CPACK_PACKAGE_NAME}")
212227
INSTALL(FILES "README.md" DESTINATION "share/doc/${CPACK_PACKAGE_NAME}")
213228

214-
ENDIF ( BUILD_CPACK )
229+
ENDIF ( )
215230

libfreenectConfig.cmake.in

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
get_filename_component(CONFIG_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
2+
3+
set(FREENECT_INCLUDE_DIRS "${CONFIG_DIR}/../../@PROJECT_INCLUDE_INSTALL_DIR@")
4+
set(FREENECT_RUNTIME_LIBRARY_DIRS "${CONFIG_DIR}/../../bin")
5+
set(FREENECT_LIBRARY_DIRS "${CONFIG_DIR}/../../@PROJECT_LIBRARY_INSTALL_DIR@")
6+
#/libfreenect.so.@PROJECT_VER@
7+
set(FREENECT_LIBRARIES "freenect")
8+
set(FREENECT_VERSION "@PROJECT_VER@")

0 commit comments

Comments
 (0)