summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2010-01-10 22:07:10 +0100
committerBardur Arantsson <bardur@scientician.net>2010-01-10 23:43:43 +0100
commitb499eedd1d85386b41ff1d9e3995170c2add2924 (patch)
treea7aa2ae1c30acf882ac457aba734b859e407992d
parent03002aae146c024c265792be875fdd02c9d47eb8 (diff)
CMake build system: supports X11, Curses and SDL frontends.
-rw-r--r--.gitignore4
-rw-r--r--CMakeLists.txt66
-rw-r--r--src/CMakeLists.txt45
-rw-r--r--src/lua/.gitignore2
-rw-r--r--src/lua/CMakeLists.txt11
5 files changed, 128 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 7272d331..7d02029f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,7 @@
*.o
*.~*
*.#*
+CMakeFiles
+CMakeCache.txt
+cmake_install.cmake
+Makefile \ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 00000000..c71cf448
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,66 @@
+# Project definition.
+PROJECT (tome2)
+CMAKE_MINIMUM_REQUIRED (VERSION 2.8)
+
+# Default flags.
+IF(CMAKE_COMPILER_IS_GNUCC)
+ # Let's set sensible options.
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe -Wall -Wno-unused-value")
+ SET(CMAKE_C_FLAGS_RELEASE "-O2")
+ SET(CMAKE_C_FLAGS_DEBUG "-O1 -g")
+ENDIF()
+
+# Add definitions.
+ADD_DEFINITIONS(-DUSE_EGO_GRAPHICS)
+ADD_DEFINITIONS(-DUSE_TRANSPARENCY)
+ADD_DEFINITIONS(-DSUPPORT_GAMMA)
+ADD_DEFINITIONS(-DUSE_PRECISE_CMOVIE)
+ADD_DEFINITIONS(-DUSE_UNIXSOCK)
+
+#
+# X11 support (OPTIONAL)
+#
+FIND_PACKAGE(X11)
+IF(X11_FOUND)
+ # Add X11 flags/options
+ ADD_DEFINITIONS(-DUSE_X11)
+ INCLUDE_DIRECTORIES(${X11_INCLUDE_DIRS})
+ SET(LIBS ${LIBS} ${X11_LIBRARIES})
+ENDIF()
+
+#
+# SDL support (OPTIONAL)
+#
+FIND_PACKAGE(SDL)
+IF(SDL_FOUND)
+ # Add SDL flags/options
+ ADD_DEFINITIONS(-DUSE_SDL)
+ INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
+ SET(LIBS ${LIBS} ${SDL_LIBRARY})
+ # SDL_image is also required
+ FIND_PACKAGE(SDL_image REQUIRED)
+ IF(SDLIMAGE_FOUND)
+ INCLUDE_DIRECTORIES(${SDLIMAGE_INCLUDE_DIR})
+ SET(LIBS ${LIBS} ${SDLIMAGE_LIBRARY})
+ ENDIF()
+ # SDL_ttf is also required
+ FIND_PACKAGE(SDL_ttf REQUIRED)
+ IF(SDLTTF_FOUND)
+ INCLUDE_DIRECTORIES(${SDLTTF_INCLUDE_DIR})
+ SET(LIBS ${LIBS} ${SDLTTF_LIBRARY})
+ ENDIF()
+ENDIF()
+
+#
+# Curses support (OPTIONAL)
+#
+FIND_PACKAGE(Curses)
+IF(CURSES_FOUND)
+ # Add Curses flags/options
+ ADD_DEFINITIONS(-DUSE_GCU)
+ INCLUDE_DIRECTORIES(${CURSES_INCLUDE_DIR})
+ SET(LIBS ${LIBS} ${CURSES_LIBRARIES})
+ENDIF()
+
+# Add the source subdirectory.
+ADD_SUBDIRECTORY (src)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 00000000..58d5c0e3
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,45 @@
+# Lua support code.
+ADD_SUBDIRECTORY(lua)
+
+# Macro for defining tolua targets.
+MACRO(TOLUA_FILE MODULE_NAME OUTPUT_FILE_NAME)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${OUTPUT_FILE_NAME}
+ COMMAND tolua -n ${MODULE_NAME} -o ${CMAKE_CURRENT_SOURCE_DIR}/${OUTPUT_FILE_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/${MODULE_NAME}.pkg
+ DEPENDS tolua ${CMAKE_CURRENT_SOURCE_DIR}/${MODULE_NAME}.pkg
+ )
+ SET_SOURCE_FILES_PROPERTIES("${OUTPUT_FILE_NAME}" PROPERTIES GENERATED TRUE)
+ENDMACRO(TOLUA_FILE)
+
+# Process all the needed modules.
+TOLUA_FILE(monster w_mnster.c)
+TOLUA_FILE(player w_player.c)
+TOLUA_FILE(player_c w_play_c.c)
+TOLUA_FILE(z_pack w_z_pack.c)
+TOLUA_FILE(object w_obj.c)
+TOLUA_FILE(util w_util.c)
+TOLUA_FILE(spells w_spells.c)
+TOLUA_FILE(quest w_quest.c)
+TOLUA_FILE(dungeon w_dun.c)
+
+# tome executable
+INCLUDE_DIRECTORIES(lua)
+ADD_EXECUTABLE(tome main-gcu.c main-x11.c main-xaw.c main-sdl.c main-dmy.c
+ z-rand.c z-util.c z-form.c z-virt.c z-term.c z-sock.c
+ variable.c tables.c plots.c util.c cave.c dungeon.c
+ melee1.c melee2.c modules.c
+ object1.c object2.c randart.c squeltch.c traps.c
+ monster1.c monster2.c monster3.c ghost.c
+ xtra1.c xtra2.c skills.c powers.c gods.c
+ spells1.c spells2.c
+ status.c files.c notes.c loadsave.c
+ cmd1.c cmd2.c cmd3.c cmd4.c cmd5.c cmd6.c cmd7.c
+ help.c
+ generate.c gen_maze.c gen_evol.c wild.c levels.c store.c bldg.c
+ cmovie.c irc.c
+ wizard2.c init2.c birth.c wizard1.c init1.c main.c
+ # Lua bits:
+ lua_bind.c script.c w_mnster.c w_player.c w_play_c.c w_z_pack.c
+ w_obj.c w_util.c w_spells.c w_quest.c w_dun.c
+ )
+TARGET_LINK_LIBRARIES(tome lua ${LIBS})
diff --git a/src/lua/.gitignore b/src/lua/.gitignore
new file mode 100644
index 00000000..26548e17
--- /dev/null
+++ b/src/lua/.gitignore
@@ -0,0 +1,2 @@
+/liblua.a
+/tolua
diff --git a/src/lua/CMakeLists.txt b/src/lua/CMakeLists.txt
new file mode 100644
index 00000000..df2b30e7
--- /dev/null
+++ b/src/lua/CMakeLists.txt
@@ -0,0 +1,11 @@
+ADD_LIBRARY (lua STATIC
+ lapi.c lcode.c ldebug.c ldo.c lfunc.c lgc.c
+ llex.c lmem.c lobject.c lparser.c lstate.c lstring.c
+ ltable.c ltests.c ltm.c lundump.c lvm.c lzio.c
+ lauxlib.c lbaselib.c ldblib.c liolib.c lstrlib.c
+ tolua_lb.c tolua_rg.c tolua_tt.c tolua_tm.c tolua_gp.c
+ tolua_eh.c tolua_bd.c)
+
+ADD_EXECUTABLE(tolua tolua.c tolualua.c lua)
+
+TARGET_LINK_LIBRARIES(tolua lua)