Make blenderplayer link to binreloc on linux.
[blender.git] / blenderplayer / CMakeLists.txt
1 # $Id$
2 # ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version. The Blender
8 # Foundation also sells licenses for use in proprietary software under
9 # the Blender License.  See http://www.blender.org/BL/ for information
10 # about this.
11 #
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software Foundation,
19 # Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20 #
21 # The Original Code is Copyright (C) 2006, Blender Foundation
22 # All rights reserved.
23 #
24 # The Original Code is: all of this file.
25 #
26 # Contributor(s): Jacques Beaurain.
27 #
28 # ***** END GPL/BL DUAL LICENSE BLOCK *****
29
30 MESSAGE(STATUS "Configuring blenderplayer")
31
32 SETUP_LIBDIRS()
33
34 IF(WITH_QUICKTIME)
35   ADD_DEFINITIONS(-DWITH_QUICKTIME)
36 ENDIF(WITH_QUICKTIME)
37
38 IF(LINUX)
39   ADD_DEFINITIONS(-DWITH_BINRELOC)
40   INCLUDE_DIRECTORIES(${BINRELOC_INC})
41 endif(LINUX)
42
43 ADD_CUSTOM_COMMAND(
44   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/dna.c
45   COMMAND ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/makesdna ${CMAKE_CURRENT_BINARY_DIR}/dna.c ${CMAKE_SOURCE_DIR}/source/blender/makesdna/
46   DEPENDS ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/makesdna
47 )
48
49 IF(WIN32)
50   ADD_EXECUTABLE(blenderplayer ${EXETYPE} ${CMAKE_CURRENT_BINARY_DIR}/dna.c ../source/icons/winblender.rc)
51 ELSE(WIN32)
52   ADD_EXECUTABLE(blenderplayer ${CMAKE_CURRENT_BINARY_DIR}/dna.c)
53 ENDIF(WIN32)
54
55 ADD_DEPENDENCIES(blenderplayer makesdna)
56
57 FILE(READ ${CMAKE_BINARY_DIR}/cmake_blender_libs.txt BLENDER_LINK_LIBS)
58
59 SET(BLENDER_LINK_LIBS ${BLENDER_LINK_LIBS} gp_common gp_ghost blenkernel_blc)
60
61 IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
62   SET(BLENDER_LINK_LIBS ${BLENDER_LINK_LIBS} extern_binreloc)
63 ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux")
64
65 IF(UNIX)
66   # Sort libraries
67   SET(BLENDER_SORTED_LIBS
68     gp_ghost 
69     gp_common 
70     bf_string 
71     bf_ghost 
72     bf_blenkernel 
73     verse 
74     bf_blenkernel 
75     bf_decimation 
76     bf_blenloader 
77     bf_blenpluginapi 
78     bf_blroutines 
79     bf_converter 
80     bf_sumo 
81     bf_ketsji 
82     extern_solid 
83     extern_qhull 
84     bf_bullet 
85     bf_common 
86     bf_dummy 
87     bf_logic 
88     bf_rasterizer 
89     bf_oglrasterizer 
90     bf_expressions 
91     bf_scenegraph 
92     bf_moto 
93     bf_soundsystem 
94     bf_kernel 
95     bf_nodes
96     bf_imbuf
97     bf_avi 
98     kx_network 
99     bf_ngnetwork 
100     bf_loopbacknetwork 
101     extern_bullet 
102     bf_guardedalloc 
103     bf_memutil 
104     bf_bmfont 
105     bf_blenlib 
106     bf_cineon 
107     bf_openexr 
108     bf_ftfont 
109     extern_ftgl 
110     bf_readblenfile 
111     blenkernel_blc
112     bf_quicktime
113     extern_binreloc
114   ) 
115
116   FOREACH(SORTLIB ${BLENDER_SORTED_LIBS})
117     SET(REMLIB ${SORTLIB})
118     FOREACH(SEARCHLIB ${BLENDER_LINK_LIBS})
119       IF(${SEARCHLIB} STREQUAL ${SORTLIB})
120         SET(REMLIB "")
121       ENDIF(${SEARCHLIB} STREQUAL ${SORTLIB})
122     ENDFOREACH(SEARCHLIB)
123     IF(REMLIB)
124       MESSAGE(STATUS "Removing library ${REMLIB} from blenderplayer linking because: not configured")
125       LIST(REMOVE_ITEM BLENDER_SORTED_LIBS ${REMLIB})
126     ENDIF(REMLIB)
127   ENDFOREACH(SORTLIB)
128
129   TARGET_LINK_LIBRARIES(blenderplayer ${BLENDER_SORTED_LIBS})
130 ELSE(UNIX)
131   TARGET_LINK_LIBRARIES(blenderplayer ${BLENDER_LINK_LIBS})
132 ENDIF(UNIX)
133
134 SETUP_LIBLINKS(blenderplayer)