Commit 45f4ec1fa0fe7cf63863259f62b5b8447b28d8b2

Ben Boeckel 2016-02-25T15:31:02

cmake: install a proper config file FTGL knows exactly what is necessary for its install, so a config file is more appropriate. A "FindDep" module is meant for projects which need "Dep" which doesn't ship a configuration file.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 44d9884..3b723f1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -54,10 +54,22 @@ IF(CxxTest_FOUND)
 	ENDIF(BUILD_TESTS)
 ENDIF(CxxTest_FOUND)
 
-IF(NOT DEFINED FTGL_CMAKE_FINDER_INSTALL_DIR)
-  SET(FTGL_CMAKE_FINDER_INSTALL_DIR "share/cmake-2.8/Modules")
-ENDIF( NOT DEFINED FTGL_CMAKE_FINDER_INSTALL_DIR)
+configure_file(
+  "${CMAKE_CURRENT_SOURCE_DIR}/FTGLConfig.cmake.in"
+  "${CMAKE_CURRENT_BINARY_DIR}/FTGLConfig.cmake"
+  @ONLY)
+configure_file(
+  "${CMAKE_CURRENT_SOURCE_DIR}/FTGLConfig-install.cmake.in"
+  "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/FTGLConfig.cmake"
+  @ONLY)
 
-INSTALL(FILES ${PROJECT_SOURCE_DIR}/cmake/FindFTGL.cmake DESTINATION
-    ${CMAKE_INSTALL_PREFIX}/${FTGL_CMAKE_FINDER_INSTALL_DIR})
+if (WIN32)
+  set(cmakedir cmake)
+else ()
+  set(cmakedir lib/cmake)
+endif ()
 
+install(EXPORT FTGL-targets DESTINATION ${cmakedir}/FTGL)
+install(
+  FILES       "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/FTGLConfig.cmake"
+  DESTINATION "${cmakedir}/FTGL")
diff --git a/FTGLConfig-install.cmake.in b/FTGLConfig-install.cmake.in
new file mode 100644
index 0000000..dc1775e
--- /dev/null
+++ b/FTGLConfig-install.cmake.in
@@ -0,0 +1,7 @@
+include("${CMAKE_CURRENT_LIST_DIR}/FTGL-targets.cmake")
+
+set(FTGL_INCLUDE_DIR "@CMAKE_INSTALL_PREFIX@/include")
+set(FTGL_LIBRARY     ftgl)
+
+set(FTGL_INCLUDE_DIRS ${FTGL_SOURCE_DIR})
+set(FTGL_LIBRARIES    ${FTGL_LIBRARY})
diff --git a/FTGLConfig.cmake.in b/FTGLConfig.cmake.in
new file mode 100644
index 0000000..b14c4a3
--- /dev/null
+++ b/FTGLConfig.cmake.in
@@ -0,0 +1,8 @@
+include("${CMAKE_CURRENT_LIST_DIR}/FTGL-targets.cmake")
+
+set(FTGL_INCLUDE_DIR
+  "@FTGL_SOURCE_DIR@/src")
+set(FTGL_LIBRARY ftgl)
+
+set(FTGL_INCLUDE_DIRS ${FTGL_SOURCE_DIR})
+set(FTGL_LIBRARIES ${FTGL_LIBRARY})
diff --git a/cmake/FindFTGL.cmake b/cmake/FindFTGL.cmake
deleted file mode 100644
index edfa4a7..0000000
--- a/cmake/FindFTGL.cmake
+++ /dev/null
@@ -1,58 +0,0 @@
-# - Locate FTGL library
-# This module defines
-#  FTGL_LIBRARIES, the library to link against
-#  FTGL_FOUND, if false, do not try to link to FTGL
-#  FTGL_INCLUDE_DIRS, where to find headers.
-#
-# $FTGL_DIR is an environment variable that points to the main ftgl directory.
-
-#=============================================================================
-# Copyright 2011 Richard Ulrich.
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
-
-# Created by Richard Ulrich.
-
-FIND_PATH(FTGL_INCLUDE_DIR FTGL/ftgl.h 
-  HINTS
-  $ENV{FTGL_DIR}
-  PATH_SUFFIXES include src
-  PATHS
-  /usr/include
-  /usr/local/include
-  /sw/include
-  /opt/local/include
-  /usr/freeware/include
-)
-
-FIND_LIBRARY(FTGL_LIBRARY
-  NAMES ftgl libftgl ftgl_static
-  HINTS
-  $ENV{FTGL_DIR}
-  PATH_SUFFIXES lib64 lib
-  PATHS
-  /usr/lib
-  /usr/local/lib
-  /sw
-  /usr/freeware
-)
-
-# set the user variables
-IF(FTGL_INCLUDE_DIR)
-  SET(FTGL_INCLUDE_DIRS "${FTGL_INCLUDE_DIR}")
-ENDIF()
-SET(FTGL_LIBRARIES "${FTGL_LIBRARY}")
-
-# handle the QUIETLY and REQUIRED arguments and set FTGL_FOUND to TRUE if 
-# all listed variables are TRUE
-INCLUDE("FindPackageHandleStandardArgs")
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(FTGL  DEFAULT_MSG  FTGL_LIBRARY  FTGL_INCLUDE_DIR)
-
-MARK_AS_ADVANCED(FTGL_LIBRARY FTGL_INCLUDE_DIR)
-
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9298dfe..123d470 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -135,6 +135,7 @@ SET_TARGET_PROPERTIES(
 )
 
 INSTALL(TARGETS   ftgl                         	  
+    EXPORT  FTGL-targets
 	RUNTIME DESTINATION bin
     LIBRARY DESTINATION lib
     ARCHIVE DESTINATION lib