Allow building as monolithic app (no plugins) for easier developement.
[tagua.git] / src / CMakeLists.txt
blobcda4964e8675f130597d817ac3656a8739ecfdb7
1 if(MONOLITH)
2   set(BUILTINVARIANTS_SRC variantfactories/builtinvariants.cpp)
3   set(TAGUA_BUILTIN_VARIANTS taguavariants)
4   add_definitions(-DTAGUA_MONOLITH)
5 else(MONOLITH)
6   set(BUILTINVARIANTS_SRC )
7   set(TAGUA_BUILTIN_VARIANTS )
8 endif(MONOLITH)
10 set(tagua_SRC
11   controllers/editgame.cpp
12   controllers/abstract.cpp
13   controllers/editposition.cpp
14   controllers/entitytoken.cpp
16   loader/image.cpp
17   loader/theme.cpp
18   loader/context.cpp
20   luaapi/lfunclib.c
21   luaapi/options.cpp
22   luaapi/luahl.cpp
23   luaapi/genericwrapper.cpp
24   luaapi/loader.cpp
25   luaapi/imaging.cpp
26   luaapi/luavalue.cpp
28   entities/gameentity.cpp
29   entities/userentity.cpp
30   entities/examinationentity.cpp
31   entities/entity.cpp
32   entities/engineentity.cpp
33   entities/icsentity.cpp
34   
35   variantfactories/kdepluginvariants.cpp
36   ${BUILTINVARIANTS_SRC}
38   actioncollection.cpp
39   agentgroup.cpp
40   animation.cpp
41   animationmanager.cpp
42   chessboard.cpp
43   chesstable.cpp
44   clock.cpp
45   common.cpp
46   components.cpp
47   connection.cpp
48   console.cpp
49   constrainedtext.cpp
50   crash.cpp
51   decoratedmove.cpp
52   engine.cpp
53   engineinfo.cpp
54   flash.cpp
55   game.cpp
56   gameinfo.cpp
57   gnushogiengine.cpp
58   graphicalgame.cpp
59   graphicalsystem.cpp
60   histlineedit.cpp
61   hline.cpp
62   icsconnection.cpp
63   icsgamedata.cpp
64   imageeffects.cpp
65   index.cpp
66   infodisplay.cpp
67   location.cpp
68   mainanimation.cpp
69   mainwindow.cpp
70   mastersettings.cpp
71   movelist.cpp
72   movelist_table.cpp
73   movelist_textual.cpp
74   movelist_widget.cpp
75   movement.cpp
76   namedsprite_utils.cpp
77   newgame.cpp
78   option.cpp
79   option_p.cpp
80   pgnparser.cpp
81   piecepool.cpp
82   pixmaploader.cpp
83   poolinfo.cpp
84   positioninfo.cpp
85   pref_board.cpp
86   pref_engines.cpp
87   pref_movelist.cpp
88   pref_preferences.cpp
89   pref_theme.cpp
90   qconnect.cpp
91   random.cpp
92   settings.cpp
93   sprite.cpp
94   tabwidget.cpp
95   themeinfo.cpp
96   ui.cpp
97   variant.cpp
98   variantfactory.cpp
99   xboardengine.cpp
102 # remove spurious xpressive warnings
103 set_source_files_properties(icsconnection.cpp
104   PROPERTIES COMPILE_FLAGS -Wno-extra)
106 kde4_add_ui_files(tagua_SRC
107   ui/pref_highlight.ui
108   ui/newgamedialog.ui
109   ui/pref_engines.ui
110   ui/preferences.ui
111   ui/gametags.ui
112   ui/pref_movelist.ui
113   ui/quickconnect.ui
114   ui/pref_theme.ui
115   ui/pref_theme_page.ui
116   ui/pref_board.ui
119 include_directories(
120   ${KDE4_INCLUDES}
121   ${LUA_INCLUDE_DIRS}
122   ${Boost_INCLUDE_DIRS}
123   ${BLITZ_INCLUDES}
124   ${CMAKE_CURRENT_BINARY_DIR}
127 add_definitions(
128   ${LUA_CFLAGS}
131 if(NOT DEFINED COMPILER_HAVE_X86_MMX)
132   check_cxx_source_compiles(" int main() { __asm__(\"pxor %mm0, %mm0\") ; }" COMPILER_HAVE_X86_MMX)
133 endif(NOT DEFINED COMPILER_HAVE_X86_MMX)
135 if(NOT DEFINED COMPILER_HAVE_X86_SSE2)
136   check_cxx_source_compiles(" int main() { __asm__(\"xorpd %xmm0, %xmm0\"); }" COMPILER_HAVE_X86_SSE2)
137 endif(NOT DEFINED COMPILER_HAVE_X86_SSE2)
139 if(COMPILER_HAVE_X86_MMX)
140   list(APPEND tagua_SRC imageeffects_mmx.cpp)
141   set_source_files_properties(imageeffects_mmx.cpp PROPERTIES COMPILE_FLAGS -mmmx)
142   set_source_files_properties(imageeffects.cpp PROPERTIES COMPILE_FLAGS -DHAVE_X86_MMX)
143 endif(COMPILER_HAVE_X86_MMX)
145 if(COMPILER_HAVE_X86_SSE2)
146   list(APPEND tagua_SRC imageeffects_sse.cpp)
147   set_source_files_properties(imageeffects_sse.cpp PROPERTIES COMPILE_FLAGS -msse2)
148   set_source_files_properties(imageeffects.cpp PROPERTIES COMPILE_FLAGS -DHAVE_X86_SSE2)
149 endif(COMPILER_HAVE_X86_SSE2)
151 if(DEBUG_BUILD)
152   set(TAGUA_TARGET taguaprivate)
153   
154   kde4_add_library(taguaprivate SHARED ${tagua_SRC})
155   target_link_libraries(taguaprivate
156     ${TAGUA_BUILTIN_VARIANTS})
157   kde4_add_executable(tagua main.cpp)
158 else(DEBUG_BUILD)
159   set(TAGUA_TARGET tagua)
160   kde4_add_executable(tagua main.cpp ${tagua_SRC})
161 endif(DEBUG_BUILD)
163 add_subdirectory(core)
164 add_subdirectory(variants)
166 link_directories(
167   ${LUA_LIBRARY_DIRS}
168   ${Boost_LIBRARY_DIRS}
169   ${CMAKE_BINARY_DIR}/lib
171 target_link_libraries(${TAGUA_TARGET}
172   ${LUA_LINK_FLAGS}
173   ${KDE4_KDEUI_LIBS}
174   ${KDE4_KIO_LIBS}
175   ${BLITZ_LIBRARIES}
176   dl
177   kdegames
178   taguacore
179 )  
180   
182   
183 if(DEBUG_BUILD)
184   target_link_libraries(tagua taguaprivate)
185   install(TARGETS taguaprivate DESTINATION ${LIB_INSTALL_DIR})
186 endif(DEBUG_BUILD)
189 INSTALL(TARGETS tagua DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
190 install(FILES tagua.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
191 install(FILES taguaui.rc DESTINATION  ${DATA_INSTALL_DIR}/tagua)