Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/libraries/src/orxonox/CMakeLists.txt @ 5657

Last change on this file since 5657 was 5649, checked in by rgrieder, 15 years ago

Fixed msvc build: I had to link the plugins as SHARED instead of MODULE because CMake doesn't allow modules to be linked against another module.
The reason why it did work after all was because the quest library was built before overlays causing CMake to link against whatever it found under the name "overlays" in the end (which was of course the output file instead of the CMake representation of a library). Since msvc never links against dlls but rather against the corresponding *.lib file things got completely busted.

Also added the proposed fix for the PATH variable (successfully tested under Windows by deleting the overlays.plugin file).

  • Property svn:eol-style set to native
File size: 3.2 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_SOURCE_FILES(ORXONOX_SRC_FILES
21  Main.cc
22
23  CameraManager.cc
24  LevelManager.cc
25  PawnManager.cc
26  PlayerManager.cc
27
28  InGameConsole.cc
29  Map.cc
30)
31ADD_SUBDIRECTORY(gamestates)
32ADD_SUBDIRECTORY(interfaces)
33ADD_SUBDIRECTORY(overlays)
34ADD_SUBDIRECTORY(objects)
35ADD_SUBDIRECTORY(sound)
36ADD_SUBDIRECTORY(tools)
37
38# Translate argument
39IF(ORXONOX_USE_WINMAIN)
40  SET(ORXONOX_WIN32 WIN32)
41ENDIF()
42
43ORXONOX_ADD_LIBRARY(orxonox
44  FIND_HEADER_FILES
45  TOLUA_FILES
46    LevelManager.h
47    objects/pickup/BaseItem.h
48    objects/pickup/PickupInventory.h
49  DEFINE_SYMBOL
50    "ORXONOX_SHARED_BUILD"
51  PCH_FILE
52    OrxonoxPrecompiledHeaders.h
53  LINK_LIBRARIES
54    ${Boost_FILESYSTEM_LIBRARY}
55    ${Boost_SYSTEM_LIBRARY} # Filesystem dependency
56    ${Boost_THREAD_LIBRARY}
57    ${Boost_DATE_TIME_LIBRARY} # Thread dependency
58    ${OGRE_LIBRARY}
59    ${OPENAL_LIBRARY}
60    ${ALUT_LIBRARY}
61    ${VORBISFILE_LIBRARY}
62    ${VORBIS_LIBRARY}
63    ${OGG_LIBRARY}
64    tinyxml++_orxonox
65    tolua++_orxonox
66    bullet_orxonox
67    util
68    core
69    network
70    tools
71  SOURCE_FILES ${ORXONOX_SRC_FILES}
72)
73
74ORXONOX_ADD_EXECUTABLE(orxonox-main
75  # When defined as WIN32 this removes the console window on Windows
76  ${ORXONOX_WIN32}
77  LINK_LIBRARIES
78    orxonox
79  SOURCE_FILES
80    Orxonox.cc
81  OUTPUT_NAME orxonox
82)
83
84GET_TARGET_PROPERTY(_exec_loc orxonox-main LOCATION)
85GET_FILENAME_COMPONENT(_exec_name ${_exec_loc} NAME)
86SET(ORXONOX_EXECUTABLE_NAME ${_exec_name} CACHE INTERNAL "")
87
88
89# When using Visual Studio we want to use the output directory as working
90# directory and we also want to specify where the external dlls
91# (lua, ogre, etc.) are. The problem hereby is that these information cannot
92# be specified in CMake because they are not stored in the actual project file.
93# This workaround will create a configured *.vcproj.user file that holds the
94# right values. When starting the solution for the first time,
95# these get written to the *vcproj.yourPCname.yourname.user
96IF(MSVC)
97  IF(CMAKE_CL_64)
98    SET(MSVC_PLATFORM "x64")
99  ELSE()
100    SET(MSVC_PLATFORM "Win32")
101  ENDIF()
102  STRING(REGEX REPLACE "^Visual Studio ([0-9][0-9]?) .*$" "\\1"
103         VISUAL_STUDIO_VERSION_SIMPLE "${CMAKE_GENERATOR}")
104  CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/orxonox-main.vcproj.user.in" "${CMAKE_CURRENT_BINARY_DIR}/orxonox-main.vcproj.user")
105ENDIF(MSVC)
Note: See TracBrowser for help on using the repository browser.