Started to make things work: show the board.
[tagua.git] / CMakeLists.txt
blobf85972df0b71ec332631d2500b03c293552c9d30
2 PROJECT(kboard)
3 CMAKE_MINIMUM_REQUIRED(VERSION 2.4.0)
7 MACRO(SETUP_SOURCES SRC UI)
8   FILE(GLOB_RECURSE ${SRC} *.c *.cpp)
10   #find uis
11   FILE(GLOB_RECURSE ${UI} *.ui)
13   FOREACH(FILE1 ${${SRC}} ${${SRC}})
14     GET_FILENAME_COMPONENT(FILE2 ${FILE1} PATH)
15     FILE(RELATIVE_PATH FILE3 ${CMAKE_CURRENT_SOURCE_DIR} ${FILE2})
16     IF(NOT "${FILE3}" STREQUAL "")
17       LIST(APPEND DIRS "${FILE3}")
18     ENDIF(NOT "${FILE3}" STREQUAL "")
19   ENDFOREACH(FILE1)
21   #LIST(SORT DIRS)
23   FOREACH(D ${DIRS})
24     IF(NOT "${D}" STREQUAL "${PREVD}")
25       LIST(APPEND UDIRS "${D}")
26     ENDIF(NOT "${D}" STREQUAL "${PREVD}")
27     SET(PREVD "${D}")
28   ENDFOREACH(D)
30   FOREACH(D ${UDIRS})
31     FILE(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${D}")
32   ENDFOREACH(D)
34   SET(PREVD)
35   SET(DIRS)
36   SET(UDIRS)
37 ENDMACRO(SETUP_SOURCES SRC UI)
41 # Boost stuff
42 FIND_PACKAGE(Boost)
45 # Lua stuff
46 IF(SYSTEM_LUA)
47   INCLUDE(UsePkgConfig)
49   IF(LUA_PKG)
50     PKGCONFIG(${LUA_PKG} LUA_INCLUDE_DIRS LUA_LIBRARY_DIRS LUA_LINK_FLAGS LUA_CFLAGS)
51   ELSE(LUA_PKG)
52     PKGCONFIG(lua5.1 LUA_INCLUDE_DIRS LUA_LIBRARY_DIRS LUA_LINK_FLAGS LUA_CFLAGS)
53     IF(NOT LUA_LINK_FLAGS)
54       PKGCONFIG(lua LUA_INCLUDE_DIRS LUA_LIBRARY_DIRS LUA_LINK_FLAGS LUA_CFLAGS)
55     ENDIF(NOT LUA_LINK_FLAGS)
56   ENDIF(LUA_PKG)
58   ADD_CUSTOM_TARGET(lua_library)
59 ELSE(SYSTEM_LUA)
60   SET(LUA_BIN_DIR "${CMAKE_CURRENT_BINARY_DIR}/lua")
61   SET(LUA_INCLUDE_DIRS "${LUA_BIN_DIR}/include")
62   SET(LUA_LIBRARY_DIRS "${LUA_BIN_DIR}")
63   SET(LUA_LINK_FLAGS lua)
65   ADD_SUBDIRECTORY(lua)
66 #   GET_FILENAME_COMPONENT(_LUA_SRC_DIRS lua ABSOLUTE)
67 #   SET(LUA_INCLUDE_DIRS ${_LUA_SRC_DIRS}/include)
68 #   SET(LUA_LIBRARY_DIRS ${_LUA_SRC_DIRS}/lib)
69 #   SET(LUA_LINK_FLAGS ${LUA_LIBRARY_DIRS}/liblua.a)
71 #   ADD_CUSTOM_TARGET(${__LUA_LIB}
72 #     ALL
73 #     COMMAND make linux
74 #     COMMAND make local
75 #     WORKING_DIRECTORY lua)
76 ENDIF(SYSTEM_LUA)
79 # X11
80 FIND_PACKAGE(X11)
82 IF(0)
83 IF (X11_FOUND)
84   ADD_DEFINITIONS(-DHAVE_X11)
85 ENDIF (X11_FOUND)
86 ENDIF(0)
88 # Qt4 / KDE4 stuff
89 ADD_DEFINITIONS(-fexceptions)
90 FIND_PACKAGE(KDE4 REQUIRED)
91 INCLUDE(KDE4Defaults)
93 INCLUDE(${QT_USE_FILE})
96 # Compile for debugging as default
97 SET(CMAKE_BUILD_TYPE debug)
99 IF(SETTINGS_DEBUG)
100   MESSAGE("Compiling with -D__SETTINGS_DEBUG")
101   ADD_DEFINITIONS(-D__SETTINGS_DEBUG)
102 ENDIF(SETTINGS_DEBUG)
104 # FIXME, i think this is not portable
105 IF(1)
106   ADD_DEFINITIONS(-Wall -ansi -pedantic -Wno-long-long) # -pg
107   #LINK_LIBRARIES(-pg)
108 ENDIF(1)
110 # Note by Paolo: verbose mode can be controlled
111 # directly by the cmake command line. The setting
112 # is stored in the cache, so you just need to type
113 #    cmake -DCMAKE_VERBOSE_MAKEFILE=1
114 # once and for all.
116 # Debug messages
118 IF (X11_FOUND)
119 MESSAGE("* X11 was found!")
120 ENDIF (X11_FOUND)
122 SET (MyRuby_DIR ${CMAKE_CURRENT_SOURCE_DIR})
123 FIND_PACKAGE(Ruby)
125 MESSAGE("* Qt4:")
126 MESSAGE("    Includes:  ${QT_INCLUDE_DIR}")
127 MESSAGE("    LinkFlags: ${QT_LIBRARIES}")
129 MESSAGE("* Kde4:")
130 MESSAGE("    Includes:  ${KDE4_INCLUDE_DIR}")
131 MESSAGE("    LinkFlags: ${KDE4_KDEUI_LIBS}")
133 MESSAGE("* Boost:")
134 MESSAGE("    Includes: ${Boost_INCLUDE_DIRS}")
135 MESSAGE("    LinkDir:  ${Boost_LIBRARY_DIRS}")
137 MESSAGE("* Lua:")
138 MESSAGE("    Includes:  ${LUA_INCLUDE_DIRS}")
139 MESSAGE("    LinkDir:   ${LUA_LIBRARY_DIRS}")
140 MESSAGE("    LinkFlags: ${LUA_LINK_FLAGS}")
141 MESSAGE("    CFlags:    ${LUA_CFLAGS}")
143 MESSAGE("* Ruby:")
144 MESSAGE("    Includes: ${RUBY_INCLUDE_PATH}")
147 #MESSAGE("data dir: ${DATA_INSTALL_DIR}")
148 #SET(DATA_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/apps/kboard/)
150 MACRO(INSTALL_LOCAL_DATA_DIR local_dir)
151   SET(abs_local_dir ${CMAKE_CURRENT_SOURCE_DIR}/data/${local_dir})
152   #MESSAGE("looking for files in ${abs_local_dir}")
153   FILE(GLOB_RECURSE INST_FILES ${abs_local_dir}/*)
154   FOREACH(INST_FILE ${INST_FILES})
155     #MESSAGE("processing: ${INST_FILE}")
156     STRING(REGEX MATCH "/\\.svn/" TEMP ${INST_FILE})
157     IF(NOT TEMP)
158       FILE(RELATIVE_PATH REL_FILE ${abs_local_dir} ${INST_FILE})
159       GET_FILENAME_COMPONENT(REL_DIR ${REL_FILE} PATH)
160       #MESSAGE("rel dir: ${REL_DIR}")
161       #MESSAGE("installing to: ${DATA_INSTALL_DIR}/${local_dir}/${REL_DIR}")
162       INSTALL(FILES ${INST_FILE}
163         DESTINATION ${DATA_INSTALL_DIR}/kboard/${local_dir}/${REL_DIR})
164     ENDIF(NOT TEMP)
165   ENDFOREACH(INST_FILE)
166 ENDMACRO(INSTALL_LOCAL_DATA_DIR local_dir)
168 INSTALL_LOCAL_DATA_DIR(themes)
169 INSTALL_LOCAL_DATA_DIR(scripts)
170 INSTALL_LOCAL_DATA_DIR(highlighting)
171 INSTALL_LOCAL_DATA_DIR(pics)
172 INSTALL_LOCAL_DATA_DIR(piece_icons)
174 ADD_DEFINITIONS("-DDATA_INSTALL_DIR=\"${DATA_INSTALL_DIR}\"")
179 ADD_SUBDIRECTORY(src)
180 ADD_SUBDIRECTORY(tests EXCLUDE_FROM_ALL)