in middle of ProjectConfig installation

This commit is contained in:
Abhijit Kundu
2014-12-01 20:36:12 -05:00
parent d9be47ebe2
commit c3551d3c2c
10 changed files with 224 additions and 249 deletions

View File

@@ -0,0 +1,68 @@
######################### COMPILE SETTINGS ################################
IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE Release CACHE STRING
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
FORCE)
ENDIF(NOT CMAKE_BUILD_TYPE)
MESSAGE(STATUS "===============================================================")
MESSAGE(STATUS "============ Configuring CompileSettings =====================")
IF(CMAKE_COMPILER_IS_GNUCC)
SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=native -funroll-loops -ffast-math")
SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -march=native -funroll-loops")
OPTION (USE_PEDANTIC_FLAGS "Use Pedantic Flags in GCC" ON)
IF(USE_PEDANTIC_FLAGS)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wno-long-long -Wno-variadic-macros")
SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -pedantic -Wno-long-long -Wno-variadic-macros")
ENDIF()
OPTION (USE_DEBUG_SYMBOLS "Use Debug Symbols" OFF)
IF(USE_DEBUG_SYMBOLS)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -g")
ENDIF()
ENDIF(CMAKE_COMPILER_IS_GNUCC)
IF(NOT MSVC)
OPTION (USE_CPP_11 "Use C++11 Compiler" ON)
IF(USE_CPP_11)
INCLUDE(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
IF(COMPILER_SUPPORTS_CXX11)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
ELSEIF(COMPILER_SUPPORTS_CXX0X)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
ELSE()
SET(USE_CPP_11 OFF)
MESSAGE(STATUS "Compiler ${CMAKE_CXX_COMPILER} has no C++11 support.")
ENDIF()
ENDIF()
ENDIF()
IF(CMAKE_BUILD_TYPE MATCHES Debug)
SET(CMAKE_BUILD_TYPE_FLAGS ${CMAKE_CXX_FLAGS_DEBUG})
ELSEIF(CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
SET(CMAKE_BUILD_TYPE_FLAGS ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
ELSEIF(CMAKE_BUILD_TYPE MATCHES Release)
SET(CMAKE_BUILD_TYPE_FLAGS ${CMAKE_CXX_FLAGS_RELEASE})
ENDIF()
OPTION (USE_OpenMP "Use OpenMP" ON)
IF(USE_OpenMP)
FIND_PACKAGE(OpenMP)
IF(OPENMP_FOUND)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
ENDIF()
ENDIF()
MESSAGE(STATUS "===============================================================")

View File

@@ -0,0 +1,19 @@
###################### InstallProjectConfig ###########################
include(CMakePackageConfigHelpers)
configure_package_config_file(
${CMAKE_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
INSTALL_DESTINATION ${INSTALL_CMAKE_DIR}
PATH_VARS INSTALL_INCLUDE_DIR
)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
DESTINATION ${INSTALL_CMAKE_DIR}
COMPONENT Devel
)
install(EXPORT ${PROJECT_NAME}Targets
DESTINATION ${INSTALL_CMAKE_DIR}
)

View File

@@ -0,0 +1,31 @@
###################### Installation Settings ###########################
# Set a local folder for default installation when CMAKE_INSTALL_PREFIX is NOT specified
IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
IF(WIN32)
SET(DEFAULT_INSTALL_PATH "$ENV{HOMEDRIVE}/${PROJECT_NAME}" )
ELSE()
SET(DEFAULT_INSTALL_PATH "$ENV{HOME}/local")
ENDIF()
SET(CMAKE_INSTALL_PREFIX "${DEFAULT_INSTALL_PATH}" CACHE PATH "${PROJECT_NAME} install prefix" FORCE)
ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
# Offer the user the choice of overriding the installation directories
SET(INSTALL_LIB_DIR lib CACHE PATH "Install dir for libraries")
SET(INSTALL_BIN_DIR bin CACHE PATH "Install dir for executables")
SET(INSTALL_INCLUDE_DIR include/${PROJECT_NAME} CACHE PATH "Install dir for headers")
IF(WIN32 AND NOT CYGWIN)
SET(DEF_INSTALL_CMAKE_DIR CMake)
ELSE()
SET(DEF_INSTALL_CMAKE_DIR lib/CMake/${PROJECT_NAME})
ENDIF()
SET(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Install dir for CMake files")
# Make relative paths absolute (needed later on)
FOREACH(p LIB BIN INCLUDE CMAKE)
SET(var INSTALL_${p}_DIR)
IF(NOT IS_ABSOLUTE "${${var}}")
SET(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}")
ENDIF()
ENDFOREACH()

View File

@@ -0,0 +1,13 @@
# Config file for the QtPropertyBrowser package
# It defines the following variables
# QtPropertyBrowser_FOUND - standard CMake Package found indicator
# QtPropertyBrowser_INCLUDE_DIRS - include directories for QtPropertyBrowser
# QtPropertyBrowser_DEFINITIONS - Definitions needed to build with QtPropertyBrowser
# QtPropertyBrowser_LIBRARIES - Libraries needed to build with QtPropertyBrowser
set (QtPropertyBrowser_FOUND true)
@PACKAGE_INIT@
set_and_check (QtPropertyBrowser_INCLUDE_DIRS "@PACKAGE_INSTALL_INCLUDE_DIR@")

View File

@@ -0,0 +1,38 @@
################ CMake Uninstall Template #######################
# CMake Template file for uninstallation of files
# mentioned in 'install_manifest.txt'
#
# Used by uinstall target
#################################################################
MESSAGE(STATUS "======================================================")
MESSAGE(STATUS "================ Uninstalling ======================")
SET(MANIFEST "${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt")
IF(NOT EXISTS ${MANIFEST})
MESSAGE(FATAL_ERROR "Cannot find install manifest: '${MANIFEST}'")
ENDIF()
FILE(STRINGS ${MANIFEST} files)
FOREACH(file ${files})
IF(EXISTS ${file})
MESSAGE(STATUS "Removing file: '${file}'")
EXECUTE_PROCESS(
COMMAND ${CMAKE_COMMAND} -E remove ${file}
OUTPUT_VARIABLE rm_out
RESULT_VARIABLE rm_retval
)
IF(NOT "${rm_retval}" STREQUAL 0)
MESSAGE(FATAL_ERROR "Failed to remove file: '${file}'.")
ENDIF()
ELSE()
MESSAGE(STATUS "File '${file}' does not exist.")
ENDIF()
ENDFOREACH(file)