summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt16
-rw-r--r--building.txt10
-rw-r--r--src/CMakeLists.txt57
3 files changed, 65 insertions, 18 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b3e86110..7b8b149b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,7 +18,13 @@ ADD_DEFINITIONS(-DUSE_EGO_GRAPHICS)
ADD_DEFINITIONS(-DUSE_TRANSPARENCY)
ADD_DEFINITIONS(-DSUPPORT_GAMMA)
ADD_DEFINITIONS(-DUSE_PRECISE_CMOVIE)
+
+# Which socket implementation are we using?
+IF(WIN32)
+ADD_DEFINITIONS(-DUSE_WINSOCK)
+ELSE()
ADD_DEFINITIONS(-DUSE_UNIXSOCK)
+ENDIF()
#
# X11 support (OPTIONAL)
@@ -74,6 +80,16 @@ IF(CURSES_FOUND)
ENDIF()
#
+# Windows support
+#
+if(WIN32)
+ # Add Windows flags/options
+ ADD_DEFINITIONS(-DWINDOWS)
+ SET(EXECUTABLE_OPTIONS WIN32)
+ SET(LIBS ${LIBS} winmm wsock32)
+endif(WIN32)
+
+#
# Set the path for loading the library bits.
#
IF(SYSTEM_INSTALL)
diff --git a/building.txt b/building.txt
index 2a3a2dfe..463d648c 100644
--- a/building.txt
+++ b/building.txt
@@ -70,3 +70,13 @@ variable LDFLAGS=-L/usr/X11R6/lib when running CMake. Example:
The SDL frontend also requires these packages: sdl-image, sdl-ttf
+
+Compiling on Windows using MinGW
+================================
+
+(See http://www.mingw.org/)
+
+To compile on Windows using MinGW, use the commands
+
+ $ cmake -G "MinGW Makefiles"
+ $ mingw32-make
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index aed6907b..973192e9 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,6 +1,44 @@
# Lua support code.
ADD_SUBDIRECTORY(lua)
+SET(SRCS
+ main-gcu.c main-x11.c main-xaw.c main-sdl.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
+ 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
+)
+
+# Need a few additional source files for Windows.
+if(WIN32)
+ SET(SRCS ${SRCS} main-win.c readdib.c)
+ # Resource files require a little workaround.
+ if(MINGW)
+ # Workaround for resource compilation for mingw on CMake.
+ # See http://www.cmake.org/Bug/view.php?id=4068
+ ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/angband_rc.o
+ COMMAND windres.exe -I${CMAKE_CURRENT_SOURCE_DIR}
+ -i${CMAKE_CURRENT_SOURCE_DIR}/angband.rc
+ -o ${CMAKE_CURRENT_BINARY_DIR}/angband_rc.o)
+ SET(SRCS ${SRCS} ${CMAKE_CURRENT_BINARY_DIR}/angband_rc.o)
+ else(MINGW)
+ SET(SRCS ${SRCS} angband.rc)
+ endif(MINGW)
+endif(WIN32)
+
+
# Macro for defining tolua targets.
MACRO(TOLUA_FILE MODULE_NAME OUTPUT_FILE_NAME)
ADD_CUSTOM_COMMAND(
@@ -25,24 +63,7 @@ TOLUA_FILE(dungeon w_dun.c)
# tome executable
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/lua)
-ADD_EXECUTABLE(tome main-gcu.c main-x11.c main-xaw.c main-sdl.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
- 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
- )
+ADD_EXECUTABLE(tome ${EXECUTABLE_OPTIONS} ${SRCS})
TARGET_LINK_LIBRARIES(tome lua ${LIBS})
# Installation