Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/kicklib/cmake/PackageConfig.cmake @ 7956

Last change on this file since 7956 was 7944, checked in by rgrieder, 14 years ago

Renamed Lua library to "Lua5.1" because that's also what the official Linux repositories call it to differentiate it from Lua v5.0.
Also simplified the CMake find script a lot since it doesn't have to find both Lua versions anymore.

  • Property svn:eol-style set to native
File size: 4.7 KB
RevLine 
[5695]1 #
2 #             ORXONOX - the hottest 3D action shooter ever to exist
3 #                             > www.orxonox.net <
4 #
5 #        This program is free software; you can redistribute it and/or
6 #         modify it under the terms of the GNU General Public License
7 #        as published by the Free Software Foundation; either version 2
8 #            of the License, or (at your option) any later version.
9 #
10 #       This program is distributed in the hope that it will be useful,
11 #        but WITHOUT ANY WARRANTY; without even the implied warranty of
12 #        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 #                 GNU General Public License for more details.
14 #
15 #   You should have received a copy of the GNU General Public License along
16 #      with this program; if not, write to the Free Software Foundation,
17 #     Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18 #
19 #
20 #  Author:
21 #    Reto Grieder
22 #  Description:
23 #    General package configuration. Merely sets the include paths.
24 #    Library files are treated separately.
25 #
[3167]26
27# Check package version info
[5923]28# MAJOR: Breaking change
29# MINOR: No breaking changes by the dependency package
30#        For example any code running on 3.0 should still run on 3.1
31#        But you can specify that the code only runs on 3.1 and higher
32#        or 4.0 and higher (so both 3.1 and 4.0 will work).
[6765]33SET(ALLOWED_MINIMUM_VERSIONS 3.1 4.0 5.0)
[5923]34
[3167]35IF(NOT EXISTS ${DEPENDENCY_PACKAGE_DIR}/version.txt)
36  SET(DEPENDENCY_VERSION 1.0)
37ELSE()
38  # Get version from file
39  FILE(READ ${DEPENDENCY_PACKAGE_DIR}/version.txt _file_content)
40  SET(_match)
41  STRING(REGEX MATCH "([0-9]+.[0-9]+)" _match ${_file_content})
42  IF(_match)
43    SET(DEPENDENCY_VERSION ${_match})
44  ELSE()
45    MESSAGE(FATAL_ERROR "The version.txt file in the dependency file has corrupt version information.")
46  ENDIF()
47ENDIF()
48
49INCLUDE(CompareVersionStrings)
[5923]50SET(_version_match FALSE)
51FOREACH(_version ${ALLOWED_MINIMUM_VERSIONS})
52  # Get major version
53  STRING(REGEX REPLACE "^([0-9]+)\\..*$" "\\1" _major_version "${_version}")
54  COMPARE_VERSION_STRINGS(${DEPENDENCY_VERSION} ${_major_version} _result TRUE)
55  IF(_result EQUAL 0)
56    COMPARE_VERSION_STRINGS(${DEPENDENCY_VERSION} ${_version} _result FALSE)
57    IF(NOT _result LESS 0)
58      SET(_version_match TRUE)
59    ENDIF()
60  ENDIF()
61ENDFOREACH(_version)
62IF(NOT _version_match)
[3167]63  MESSAGE(FATAL_ERROR "Your dependency package version is ${DEPENDENCY_VERSION}\n"
[5923]64          "Possible required versions: ${ALLOWED_MINIMUM_VERSIONS}\n"
65          "You can get a new version from www.orxonox.net")
[3167]66ENDIF()
67
[5695]68IF(NOT _INTERNAL_PACKAGE_MESSAGE)
69  MESSAGE(STATUS "Using library package for the dependencies.")
70  SET(_INTERNAL_PACKAGE_MESSAGE 1 CACHE INTERNAL "Do not edit!" FORCE)
71ENDIF()
[3167]72
[7244]73# Ogre versions >= 1.7 require the POCO library on Windows with MSVC for threading
[7224]74COMPARE_VERSION_STRINGS(${DEPENDENCY_VERSION} 5 _result TRUE)
[7244]75IF(NOT _result EQUAL -1 AND NOT MINGW)
[7224]76    SET(POCO_REQUIRED TRUE)
77ENDIF()
78
[3167]79# Include paths and other special treatments
[5781]80SET(ENV{ALUTDIR}               ${DEP_INCLUDE_DIR}/freealut)
[3370]81SET(ENV{BOOST_ROOT}            ${DEP_INCLUDE_DIR}/boost)
[5781]82SET(ENV{CEGUIDIR}              ${DEP_INCLUDE_DIR}/cegui)
[7449]83SET(ENV{DBGHELP_DIR}           ${DEP_INCLUDE_DIR}/dbghelp)
[5781]84SET(ENV{DXSDK_DIR}             ${DEP_INCLUDE_DIR}/directx)
[7459]85#SET(ENV{ENETDIR}               ${DEP_INCLUDE_DIR}/enet)
[7944]86SET(ENV{LUA5.1_DIR}            ${DEP_INCLUDE_DIR}/lua)
[5781]87SET(ENV{OGGDIR}                ${DEP_INCLUDE_DIR}/libogg)
88SET(ENV{VORBISDIR}             ${DEP_INCLUDE_DIR}/libvorbis)
[3370]89SET(ENV{OGRE_HOME}             ${DEP_INCLUDE_DIR}/ogre)
[5781]90SET(ENV{OGRE_PLUGIN_DIR}       ${DEP_BINARY_DIR})
91SET(ENV{OPENALDIR}             ${DEP_INCLUDE_DIR}/openal)
[7224]92SET(ENV{POCODIR}               ${DEP_INCLUDE_DIR}/poco)
[5781]93LIST(APPEND CMAKE_INCLUDE_PATH ${DEP_INCLUDE_DIR}/tcl/include)
94LIST(APPEND CMAKE_INCLUDE_PATH ${DEP_INCLUDE_DIR}/zlib/include)
[3167]95
96### INSTALL ###
[3370]97
[5781]98# Tcl script library
99INSTALL(
100  DIRECTORY ${DEP_LIBRARY_DIR}/tcl/
101  DESTINATION lib/tcl
102)
103
[3167]104# On Windows, DLLs have to be in the executable folder, install them
105IF(WIN32 AND DEP_BINARY_DIR)
106  ## DEBUG
107  # When installing a debug version, we really can't know which libraries
108  # are used in released mode because there might be deps of deps.
109  # --> Copy all of them, except the debug databases
110  INSTALL(
111    DIRECTORY ${DEP_BINARY_DIR}/
112    DESTINATION bin
113    CONFIGURATIONS Debug
114    REGEX "^.*\\.pdb$" EXCLUDE
115  )
116
117  ## RELEASE
118  # Try to filter out all the debug libraries. If the regex doesn't do the
119  # job anymore, simply adjust it.
120  INSTALL(
121    DIRECTORY ${DEP_BINARY_DIR}/
122    DESTINATION bin
123    CONFIGURATIONS Release RelWithDebInfo MinSizeRel
124    REGEX "_[Dd]\\.[a-zA-Z0-9+-]+$|-mt-gd-|^.*\\.pdb$" EXCLUDE
125  )
126ENDIF()
Note: See TracBrowser for help on using the repository browser.