|
From: <pat...@us...> - 2013-07-29 20:26:22
|
Revision: 1285
http://sourceforge.net/p/ggt/code/1285
Author: patrickh
Date: 2013-07-29 20:26:20 +0000 (Mon, 29 Jul 2013)
Log Message:
-----------
Add a CMake build for installing GMTL.
Submitted by: Doug McCorkle
Added Paths:
-----------
trunk/CMakeLists.txt
trunk/Findpackage.cmake.in
trunk/Usepackage.cmake.in
trunk/packageBuildTreeSettings.cmake.in
trunk/packageConfig.cmake.in
trunk/packageConfigVersion.cmake.in
Added: trunk/CMakeLists.txt
===================================================================
--- trunk/CMakeLists.txt (rev 0)
+++ trunk/CMakeLists.txt 2013-07-29 20:26:20 UTC (rev 1285)
@@ -0,0 +1,114 @@
+cmake_minimum_required (VERSION 2.8.8)
+
+project( gmtl )
+
+set(gmtl_MAJOR_VERSION 0)
+set(gmtl_MINOR_VERSION 7)
+set(gmtl_SUB_VERSION 0)
+set(gmtl_VERSION ${gmtl_MAJOR_VERSION}.${gmtl_MINOR_VERSION}.${gmtl_SUB_VERSION})
+set(gmtl_PACKAGE_VERSION ${gmtl_VERSION})
+
+#Set the include directory so that gmtl can be used as a sub project
+if( NOT(${CMAKE_PROJECT_NAME} STREQUAL ${PROJECT_NAME}) )
+ set(gmtl_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}" PARENT_SCOPE)
+endif()
+
+#option(BUILD_EXAMPLE "Build example?" ON)
+
+set(gmtl_INSTALL_BINDIR bin)
+
+if(WIN32)
+ set(gmtl_INSTALL_INCDIR include)
+else()
+ set(gmtl_INSTALL_INCDIR include/gmtl-${gmtl_PACKAGE_VERSION})
+endif()
+
+include_directories( ${PROJECT_SOURCE_DIR} )
+
+############################################################
+# Compile the gmtl header
+
+file( GLOB_RECURSE gmtl_hdrs "gmtl/*" )
+
+source_group( "Header Files" FILES ${gmtl_hdrs})
+
+add_custom_target( HEADER_ONLY_TARGET SOURCES ${gmtl_hdrs} )
+
+set_target_properties( HEADER_ONLY_TARGET PROPERTIES PROJECT_LABEL "GMTL Headers" )
+
+set_target_properties( HEADER_ONLY_TARGET PROPERTIES LINKER_LANGUAGE CXX)
+
+install(DIRECTORY ${PROJECT_SOURCE_DIR}/${PROJECT_NAME}
+ DESTINATION ${gmtl_INSTALL_INCDIR}
+ FILES_MATCHING PATTERN "*.h")
+
+############################################################
+
+############################################################
+
+#
+# Create and install all of the auto find tools
+# =============================================
+
+# Export the package for use from the build-tree
+# (this registers the build-tree with a global CMake-registry)
+export(PACKAGE ${PROJECT_NAME})
+
+# Create a gmtlBuildTreeSettings.cmake file for the use from the build tree
+configure_file(${PROJECT_SOURCE_DIR}/packageBuildTreeSettings.cmake.in
+ "${PROJECT_BINARY_DIR}/share/${PROJECT_NAME}/${PROJECT_NAME}BuildTreeSettings.cmake" @ONLY)
+configure_file(${PROJECT_SOURCE_DIR}/packageConfigVersion.cmake.in
+ "${PROJECT_BINARY_DIR}/share/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake" @ONLY)
+configure_file(${PROJECT_SOURCE_DIR}/Usepackage.cmake.in
+ "${PROJECT_BINARY_DIR}/share/${PROJECT_NAME}/Use${PROJECT_NAME}.cmake" @ONLY)
+
+include(CMakePackageConfigHelpers)
+# Create the gmtlConfig.cmake and gmtlConfigVersion files
+configure_package_config_file(
+ ${PROJECT_SOURCE_DIR}/packageConfig.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake
+ INSTALL_DESTINATION share/${PROJECT_NAME}
+ PATH_VARS gmtl_INSTALL_INCDIR)
+
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/Use${PROJECT_NAME}.cmake
+ DESTINATION share/${PROJECT_NAME}
+ COMPONENT development)
+
+# Install the CMake find script for gmtl
+configure_file(${PROJECT_SOURCE_DIR}/Findpackage.cmake.in
+ "${PROJECT_BINARY_DIR}/Find${PROJECT_NAME}.cmake" @ONLY)
+install(FILES "${PROJECT_BINARY_DIR}/Find${PROJECT_NAME}.cmake"
+ DESTINATION "share/${PROJECT_NAME}/extra"
+ COMPONENT development)
+
+# Create flagpoll file
+set(provides "${PROJECT_NAME}")
+set(arch "noarch")
+set(version "${gmtl_VERSION}")
+set(prefix "\${fp_file_cwd}/../..")
+set(exec_prefix "\${prefix}")
+set(includedir "\${fp_file_cwd}/../../${gmtl_INSTALL_INCDIR}")
+
+if(CMAKE_COMPILER_IS_GNUCXX OR ( CMAKE_CXX_COMPILER_ID STREQUAL "Clang" ) )
+ set(gmtl_cxxflags "")
+ set(include_path_flag "-I")
+elseif(MSVC)
+ set(include_path_flag "/I")
+else()
+ message(FATAL_ERROR "Compiler not recognized - can't generate values for Flagpoll file")
+endif()
+
+configure_file(gmtl.fpc.in "${CMAKE_CURRENT_BINARY_DIR}/gmtl.fpc" @ONLY)
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/gmtl.fpc"
+ DESTINATION "share/flagpoll"
+ COMPONENT development)
+
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/gmtl.pc"
+ DESTINATION "lib/pkgconfig"
+ COMPONENT development)
+
+install(FILES gmtl-config
+ DESTINATION ${gmtl_INSTALL_BINDIR}
+ COMPONENT development)
Property changes on: trunk/CMakeLists.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Findpackage.cmake.in
===================================================================
--- trunk/Findpackage.cmake.in (rev 0)
+++ trunk/Findpackage.cmake.in 2013-07-29 20:26:20 UTC (rev 1285)
@@ -0,0 +1,45 @@
+# - Find a @PROJECT_NAME@ installation or build tree.
+# The following variables are set if @PROJECT_NAME@ is found. If @PROJECT_NAME@ is not
+# found, @PROJECT_NAME@_FOUND is set to false.
+# @PROJECT_NAME@_FOUND - Set to true when @PROJECT_NAME@ is found.
+# @PROJECT_NAME@_USE_FILE - CMake file to use @PROJECT_NAME@.
+# @PROJECT_NAME@_MAJOR_VERSION - The @PROJECT_NAME@ major version number.
+# @PROJECT_NAME@_MINOR_VERSION - The @PROJECT_NAME@ minor version number
+# (odd non-release).
+# @PROJECT_NAME@_BUILD_VERSION - The @PROJECT_NAME@ patch level
+# (meaningless for odd minor).
+# @PROJECT_NAME@_INCLUDE_DIRS - Include directories for @PROJECT_NAME@
+# @PROJECT_NAME@_LIBRARY_DIRS - Link directories for @PROJECT_NAME@ libraries
+
+# The following cache entries must be set by the user to locate @PROJECT_NAME@:
+# @PROJECT_NAME@_DIR - The directory containing @PRO...@Co....
+# This is either the root of the build tree,
+# or the lib directory. This is the
+# only cache entry.
+
+
+# Assume not found.
+SET(@PROJECT_NAME@_FOUND 0)
+
+# Construct consitent error messages for use below.
+SET(@PROJECT_NAME@_DIR_DESCRIPTION "directory containing @PRO...@Co.... This is either the root of the build tree, or PREFIX/lib for an installation.")
+SET(@PROJECT_NAME@_DIR_MESSAGE "@PROJECT_NAME@ not found. Set the @PROJECT_NAME@_DIR cmake cache entry to the ${@PROJECT_NAME@_DIR_DESCRIPTION}")
+
+# Use the Config mode of the find_package() command to find @PROJECT_NAME@Config.
+# If this succeeds (possibly because @PROJECT_NAME@_DIR is already set), the
+# command will have already loaded @PRO...@Co... and set @PROJECT_NAME@_FOUND.
+IF(NOT @PROJECT_NAME@_FOUND)
+ FIND_PACKAGE(@PROJECT_NAME@ QUIET NO_MODULE)
+ENDIF(NOT @PROJECT_NAME@_FOUND)
+
+#-----------------------------------------------------------------------------
+IF(NOT @PROJECT_NAME@_FOUND)
+ # @PROJECT_NAME@ not found, explain to the user how to specify its location.
+ IF(@PROJECT_NAME@_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR ${@PROJECT_NAME@_DIR_MESSAGE})
+ ELSE(@PROJECT_NAME@_FIND_REQUIRED)
+ IF(NOT @PROJECT_NAME@_FIND_QUIETLY)
+ MESSAGE(STATUS ${@PROJECT_NAME@_DIR_MESSAGE})
+ ENDIF(NOT @PROJECT_NAME@_FIND_QUIETLY)
+ ENDIF(@PROJECT_NAME@_FIND_REQUIRED)
+ENDIF(NOT @PROJECT_NAME@_FOUND)
Property changes on: trunk/Findpackage.cmake.in
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Usepackage.cmake.in
===================================================================
--- trunk/Usepackage.cmake.in (rev 0)
+++ trunk/Usepackage.cmake.in 2013-07-29 20:26:20 UTC (rev 1285)
@@ -0,0 +1,25 @@
+#
+# This module is provided as @PROJECT_NAME@_USE_FILE by @PRO...@Co.... It can
+# be INCLUDEd in a project to load the needed compiler and linker
+# settings to use @PROJECT_NAME@.
+#
+
+IF(NOT @PROJECT_NAME@_USE_FILE_INCLUDED)
+ SET(@PROJECT_NAME@_USE_FILE_INCLUDED 1)
+
+ # Update CMAKE_MODULE_PATH so includes work.
+ #SET (CMAKE_MODULE_PATH
+ # ${CMAKE_MODULE_PATH}
+ # ${@PROJECT_NAME@_CMAKE_DIR})
+
+ # Add compiler flags needed to use @PROJECT_NAME@.
+ #SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${@PROJECT_NAME@_REQUIRED_C_FLAGS}")
+ #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${@PROJECT_NAME@_REQUIRED_CXX_FLAGS}")
+ #SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${@PROJECT_NAME@_REQUIRED_EXE_LINKER_FLAGS}")
+ #SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${@PROJECT_NAME@_REQUIRED_SHARED_LINKER_FLAGS}")
+ #SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${@PROJECT_NAME@_REQUIRED_MODULE_LINKER_FLAGS}")
+
+ # Add include directories needed to use @PROJECT_NAME@.
+ INCLUDE_DIRECTORIES(${@PROJECT_NAME@_INCLUDE_DIRS})
+
+ENDIF(NOT @PROJECT_NAME@_USE_FILE_INCLUDED)
Property changes on: trunk/Usepackage.cmake.in
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/packageBuildTreeSettings.cmake.in
===================================================================
--- trunk/packageBuildTreeSettings.cmake.in (rev 0)
+++ trunk/packageBuildTreeSettings.cmake.in 2013-07-29 20:26:20 UTC (rev 1285)
@@ -0,0 +1,3 @@
+set(@PROJECT_NAME@_INCLUDE_DIRS
+ "@PROJECT_SOURCE_DIR@"
+ "@PROJECT_BINARY_DIR@")
Property changes on: trunk/packageBuildTreeSettings.cmake.in
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/packageConfig.cmake.in
===================================================================
--- trunk/packageConfig.cmake.in (rev 0)
+++ trunk/packageConfig.cmake.in 2013-07-29 20:26:20 UTC (rev 1285)
@@ -0,0 +1,23 @@
+# - Config file for the @PROJECT_NAME@ package
+# It defines the following variables
+# @PROJECT_NAME@_INCLUDE_DIRS - include directories for @PROJECT_NAME@
+# @PROJECT_NAME@_LIBRARIES - libraries to link against
+# @PROJECT_NAME@_EXECUTABLE - the bar executable
+
+@PACKAGE_INIT@
+
+# These are IMPORTED targets created by @PRO...@Li...
+#set(@PROJECT_NAME@_LIBRARIES "@VES_EXPORT_LIBRARY_TARGETS@" )
+#set(@PROJECT_NAME@_EXECUTABLE test)
+
+# Compute paths
+# get_filename_component(@PROJECT_NAME@_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+if(EXISTS "${PACKAGE_PREFIX_DIR}/CMakeCache.txt")
+ # In build tree
+ include("${PACKAGE_PREFIX_DIR}/share/gmtl/@PRO...@Bu...")
+else()
+ set_and_check(@PROJECT_NAME@_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/@gmtl_INSTALL_INCDIR@")
+endif()
+
+# The location of the Use@PROJECT_NAME@.cmake file.
+set(@PROJECT_NAME@_USE_FILE "${PACKAGE_PREFIX_DIR}/share/gmtl/Use@PROJECT_NAME@.cmake")
Property changes on: trunk/packageConfig.cmake.in
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/packageConfigVersion.cmake.in
===================================================================
--- trunk/packageConfigVersion.cmake.in (rev 0)
+++ trunk/packageConfigVersion.cmake.in 2013-07-29 20:26:20 UTC (rev 1285)
@@ -0,0 +1,11 @@
+set(PACKAGE_VERSION "@gmtl_PACKAGE_VERSION@")
+
+# Check whether the requested PACKAGE_FIND_VERSION is compatible
+if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+else()
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
+ set(PACKAGE_VERSION_EXACT TRUE)
+ endif()
+endif()
Property changes on: trunk/packageConfigVersion.cmake.in
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|