2011-10-25 15:48:19 +00:00
|
|
|
# Top-Level CmakeLists.txt
|
|
|
|
|
cmake_minimum_required(VERSION 2.8.2)
|
2011-11-24 19:11:50 +00:00
|
|
|
PROJECT( Find-Object )
|
2011-11-09 19:01:46 +00:00
|
|
|
SET(PROJECT_PREFIX find_object)
|
2011-10-25 15:48:19 +00:00
|
|
|
|
2011-11-09 20:48:04 +00:00
|
|
|
ADD_DEFINITIONS(-DPROJECT_PREFIX="${PROJECT_PREFIX}")
|
2011-11-10 14:00:20 +00:00
|
|
|
ADD_DEFINITIONS(-DPROJECT_NAME="${PROJECT_NAME}")
|
2011-11-23 18:08:33 +00:00
|
|
|
ADD_DEFINITIONS( "-Wall" )
|
2012-09-21 14:59:09 +00:00
|
|
|
#ADD_DEFINITIONS("-DUNICODE") # to test with UNICODE projects
|
2011-10-25 15:48:19 +00:00
|
|
|
|
2011-11-09 19:01:46 +00:00
|
|
|
#######################
|
|
|
|
|
# VERSION
|
|
|
|
|
#######################
|
2013-02-07 18:02:04 +00:00
|
|
|
SET(PROJECT_VERSION "0.4.1")
|
2011-11-24 19:11:50 +00:00
|
|
|
ADD_DEFINITIONS(-DPROJECT_VERSION="${PROJECT_VERSION}")
|
2011-11-09 19:01:46 +00:00
|
|
|
|
|
|
|
|
STRING(REGEX MATCHALL "[0-9]" PROJECT_VERSION_PARTS "${PROJECT_VERSION}")
|
|
|
|
|
|
|
|
|
|
LIST(GET PROJECT_VERSION_PARTS 0 PROJECT_VERSION_MAJOR)
|
|
|
|
|
LIST(GET PROJECT_VERSION_PARTS 1 PROJECT_VERSION_MINOR)
|
|
|
|
|
LIST(GET PROJECT_VERSION_PARTS 2 PROJECT_VERSION_PATCH)
|
|
|
|
|
|
|
|
|
|
SET(PROJECT_SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
|
|
|
|
|
|
|
|
|
|
####### COMPILATION PARAMS #######
|
|
|
|
|
# In case of Makefiles if the user does not setup CMAKE_BUILD_TYPE, assume it's Release:
|
|
|
|
|
IF(${CMAKE_GENERATOR} MATCHES ".*Makefiles")
|
|
|
|
|
IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
|
|
|
|
|
set(CMAKE_BUILD_TYPE Release)
|
|
|
|
|
ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
|
|
|
|
|
ENDIF(${CMAKE_GENERATOR} MATCHES ".*Makefiles")
|
|
|
|
|
|
|
|
|
|
SET(CMAKE_DEBUG_POSTFIX "d")
|
|
|
|
|
|
2011-10-25 15:48:19 +00:00
|
|
|
####### OUTPUT DIR #######
|
|
|
|
|
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
|
|
|
|
|
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
|
|
|
|
|
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)
|
|
|
|
|
|
|
|
|
|
####### DEPENDENCIES #######
|
|
|
|
|
FIND_PACKAGE(OpenCV REQUIRED) # tested on 2.3.1
|
2013-04-25 00:53:30 +00:00
|
|
|
FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui) # tested on Qt4.7
|
2011-10-25 15:48:19 +00:00
|
|
|
|
2011-11-09 20:48:04 +00:00
|
|
|
####### OSX BUNDLE CMAKE_INSTALL_PREFIX #######
|
|
|
|
|
OPTION(BUILD_AS_BUNDLE "Set to ON to build as bundle (DragNDrop)" OFF)
|
|
|
|
|
IF(APPLE AND BUILD_AS_BUNDLE)
|
|
|
|
|
#Force to Off, easiest to package into the bundle
|
|
|
|
|
SET( BUILD_SHARED_LIBS OFF )
|
|
|
|
|
|
|
|
|
|
# Required when packaging, and set CMAKE_INSTALL_PREFIX to "/".
|
|
|
|
|
SET(CPACK_SET_DESTDIR TRUE)
|
|
|
|
|
|
|
|
|
|
SET(CMAKE_BUNDLE_NAME
|
|
|
|
|
"${PROJECT_NAME}")
|
|
|
|
|
SET(CMAKE_BUNDLE_LOCATION "/")
|
|
|
|
|
|
|
|
|
|
# make sure CMAKE_INSTALL_PREFIX ends in /
|
|
|
|
|
SET(CMAKE_INSTALL_PREFIX
|
|
|
|
|
"/${CMAKE_BUNDLE_NAME}.app/Contents")
|
|
|
|
|
ENDIF(APPLE AND BUILD_AS_BUNDLE)
|
|
|
|
|
|
2011-10-25 15:48:19 +00:00
|
|
|
####### SOURCES (Projects) #######
|
2013-04-25 00:53:30 +00:00
|
|
|
ADD_SUBDIRECTORY( app )
|
|
|
|
|
ADD_SUBDIRECTORY( example )
|
2013-04-25 00:11:56 +00:00
|
|
|
ADD_SUBDIRECTORY( console_app )
|
2011-11-09 19:01:46 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-12-02 18:45:19 +00:00
|
|
|
#######################
|
|
|
|
|
# Uninstall target, for "make uninstall"
|
|
|
|
|
#######################
|
|
|
|
|
CONFIGURE_FILE(
|
|
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
|
|
|
|
|
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
|
|
|
|
IMMEDIATE @ONLY)
|
|
|
|
|
|
|
|
|
|
ADD_CUSTOM_TARGET(uninstall
|
|
|
|
|
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
|
2011-11-09 19:01:46 +00:00
|
|
|
|
|
|
|
|
#######################
|
|
|
|
|
# CPACK (Packaging)
|
|
|
|
|
#######################
|
|
|
|
|
INCLUDE(InstallRequiredSystemLibraries)
|
|
|
|
|
|
|
|
|
|
SET(CPACK_PACKAGE_NAME "${PROJECT_NAME}")
|
|
|
|
|
SET(CPACK_PACKAGE_VENDOR "${PROJECT_NAME} project")
|
|
|
|
|
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Find-Object")
|
|
|
|
|
SET(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
|
|
|
|
|
SET(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
|
|
|
|
|
SET(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
|
|
|
|
|
SET(CPACK_PACKAGE_CONTACT "matlabbe@gmail.com")
|
|
|
|
|
|
|
|
|
|
set(CPACK_SOURCE_IGNORE_FILES
|
|
|
|
|
"\\\\.svn/"
|
|
|
|
|
"${PROJECT_SOURCE_DIR}/build/[a-zA-Z0-9_]+"
|
|
|
|
|
"~$"
|
|
|
|
|
"${PROJECT_SOURCE_DIR}/bin/.*${PROJECT_PREFIX}"
|
|
|
|
|
"${PROJECT_SOURCE_DIR}/bin/.*${PROJECT_NAME}"
|
|
|
|
|
"\\\\.DS_Store"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
IF(WIN32)
|
|
|
|
|
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
|
|
|
|
|
|
|
|
|
|
SET(CPACK_GENERATOR "NSIS;ZIP")
|
|
|
|
|
SET(CPACK_SOURCE_GENERATOR "ZIP")
|
2011-11-09 21:17:52 +00:00
|
|
|
SET(CPACK_NSIS_PACKAGE_NAME "${PROJECT_NAME}")
|
2011-11-24 20:45:50 +00:00
|
|
|
SET(ICON_PATH "${PROJECT_SOURCE_DIR}/app/${PROJECT_NAME}.ico")
|
|
|
|
|
SET(CPACK_NSIS_MUI_ICON ${ICON_PATH})
|
|
|
|
|
SET(CPACK_NSIS_MUI_UNIICON ${ICON_PATH})
|
2011-11-09 19:01:46 +00:00
|
|
|
SET(CPACK_NSIS_DISPLAY_NAME "${PROJECT_NAME}")
|
|
|
|
|
SET(CPACK_NSIS_CONTACT ${CPACK_PACKAGE_CONTACT})
|
|
|
|
|
# Set the icon used for the Windows "Add or Remove Programs" tool.
|
2011-11-24 20:45:50 +00:00
|
|
|
SET(CPACK_NSIS_INSTALLED_ICON_NAME bin\\\\${PROJECT_NAME}.exe)
|
2011-11-09 19:01:46 +00:00
|
|
|
SET(CPACK_PACKAGE_EXECUTABLES "${PROJECT_NAME}" "${PROJECT_NAME}" ${CPACK_PACKAGE_EXECUTABLES})
|
|
|
|
|
SET(CPACK_CREATE_DESKTOP_LINKS "${PROJECT_NAME}" ${CPACK_CREATE_DESKTOP_LINKS})
|
2011-11-09 21:17:52 +00:00
|
|
|
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME}")
|
2011-11-09 20:48:04 +00:00
|
|
|
ELSEIF(APPLE)
|
|
|
|
|
IF(BUILD_AS_BUNDLE)
|
|
|
|
|
# On APPLE and if BUILD_AS_BUNDLE=ON, the project is created as a bundle
|
|
|
|
|
# over the main app (see ./src).Here we package only this bundle. Note
|
|
|
|
|
# that we set CMAKE_INSTALL_PREFIX to "/" when packaging to DragNDrop...
|
|
|
|
|
SET(CPACK_GENERATOR "DragNDrop")
|
|
|
|
|
ELSE()
|
|
|
|
|
SET(CPACK_GENERATOR "PackageMaker;TBZ2")
|
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
|
|
SET(CPACK_SOURCE_GENERATOR "TBZ2")
|
|
|
|
|
|
2011-11-24 20:45:50 +00:00
|
|
|
SET(CPACK_PACKAGE_ICON "${PROJECT_SOURCE_DIR}/app/${PROJECT_NAME}.icns")
|
2012-08-31 14:48:18 +00:00
|
|
|
ELSE()
|
|
|
|
|
SET(CPACK_SOURCE_GENERATOR "ZIP")
|
2011-11-09 20:48:04 +00:00
|
|
|
ENDIF()
|
2011-11-09 19:01:46 +00:00
|
|
|
|
|
|
|
|
INCLUDE(CPack)
|
|
|
|
|
|
2011-11-09 20:48:04 +00:00
|
|
|
#######################
|
|
|
|
|
# OUTPUT INFO
|
|
|
|
|
#######################
|
2011-11-09 19:01:46 +00:00
|
|
|
MESSAGE(STATUS "--------------------------------------------")
|
|
|
|
|
MESSAGE(STATUS "Info :")
|
|
|
|
|
MESSAGE(STATUS " CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}")
|
|
|
|
|
MESSAGE(STATUS " CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}")
|
2011-11-09 20:48:04 +00:00
|
|
|
IF(APPLE)
|
|
|
|
|
MESSAGE(STATUS " BUILD_AS_BUNDLE = ${BUILD_AS_BUNDLE}")
|
|
|
|
|
ENDIF(APPLE)
|
2011-11-24 19:11:50 +00:00
|
|
|
MESSAGE(STATUS "--------------------------------------------")
|