Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/buildsystem3/src/ceguilua/CMakeLists.txt @ 2671

Last change on this file since 2671 was 2670, checked in by rgrieder, 16 years ago
  • Added version info (written by the linker) to all libraries
  • Target dependency bugfix for msvc in doc/api
  • Fixed possibly non existent html directory when installing docs
  • Merged the three Bullet libraries into a single one
  • No warnings at all from third party libraries
  • Performance tweak in ceguilua CMake files
  • Property svn:eol-style set to native
File size: 3.3 KB
Line 
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
20SET(CEGUILUA_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ceguilua-${CEGUI_VERSION}/ceguilua)
21SET(CEGUILUA_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
22
23SET(CEGUILUA_FILES
24  ${CEGUILUA_DIR}/CEGUILua.cpp
25  ${CEGUILUA_DIR}/CEGUILuaFunctor.cpp
26  ${CEGUILUA_DIR}/required.cpp
27  ${CEGUILUA_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lua_CEGUI.cpp
28
29  ${CEGUILUA_DIR}/CEGUILua.h
30  ${CEGUILUA_DIR}/CEGUILuaFunctor.h
31  ${CEGUILUA_DIR}/required.h
32)
33
34INCLUDE(CompareVersionStrings)
35
36# Copy package files incrementally until the version is met
37SET(CEGUILUA_VERSIONS 0.5.0 0.6.0 0.6.1 0.6.2)
38# Only copy on version change
39IF(NOT "${_CEGUI_VERSION_REF}" STREQUAL "${CEGUI_VERSION}"
40   OR NOT EXISTS ${CEGUILUA_BINARY_DIR}/exceptions.lua)
41  SET(_CEGUI_VERSION_REF ${CEGUI_VERSION} CACHE INTERNAL "Do not edit")
42  FOREACH(_version ${CEGUILUA_VERSIONS})
43    COMPARE_VERSION_STRINGS(${_version} ${CEGUI_VERSION} _compare_result)
44    IF(_compare_result EQUAL 1)
45      BREAK() # _version > CEGUI_VERSION
46    ENDIF()
47 
48    ADD_SUBDIRECTORY(ceguilua-${_version}) # Sets parent scope variable _package_files
49    FOREACH(_file ${_package_files})
50      CONFIGURE_FILE(ceguilua-${_version}/package/${_file} ${CEGUILUA_BINARY_DIR}/${_file} COPYONLY)
51    ENDFOREACH(_file)
52  ENDFOREACH(_version)
53ENDIF()
54
55# Create the tolua bind file. We could use the orignal file though, but it is 1.6MB...
56ADD_CUSTOM_COMMAND(
57  OUTPUT ${CEGUILUA_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lua_CEGUI.cpp
58  COMMAND tolua++app_orxonox -n CEGUI
59                             -w ${CEGUILUA_BINARY_DIR}
60                             -o ${CMAKE_CFG_INTDIR}/lua_CEGUI.cpp
61                             -L exceptions.lua
62                             -s ${TOLUA_PARSER_SOURCE}
63                                CEGUI.pkg
64  DEPENDS              ${TOLUA_PARSER_DEPENDENCIES}
65  WORKING_DIRECTORY    ${ORXONOX_RUNTIME_LIBRARY_DIRECTORY}
66  COMMENT "Generating tolua bind files for package CEGUILua"
67)
68
69# No warnings needed from third party libraries
70ADD_COMPILER_FLAGS("-w")
71
72SOURCE_GROUP("Source" FILES ${CEGUILUA_FILES})
73
74SET(CEGUILUA_LIBRARY ceguilua_orxonox)
75SET(CEGUILUA_LIBRARY ${CEGUILUA_LIBRARY} PARENT_SCOPE)
76ADD_LIBRARY(${CEGUILUA_LIBRARY} SHARED ${CEGUILUA_FILES})
77SET_TARGET_PROPERTIES(${CEGUILUA_LIBRARY} PROPERTIES DEFINE_SYMBOL "CEGUILUA_EXPORTS")
78TARGET_LINK_LIBRARIES(${CEGUILUA_LIBRARY}
79  tolua++_orxonox
80  ${LUA_LIBRARIES}
81  ${CEGUI_LIBRARY}
82)
83
84SET_TARGET_PROPERTIES(ceguilua_orxonox PROPERTIES VERSION ${CEGUI_VERSION})
85
86ORXONOX_INSTALL(ceguilua_orxonox)
Note: See TracBrowser for help on using the repository browser.