Fix things for cross-compiling using mingw
authorPerttu Ahola <celeron55@gmail.com>
Mon, 2 Apr 2012 18:01:58 +0000 (21:01 +0300)
committerPerttu Ahola <celeron55@gmail.com>
Mon, 2 Apr 2012 18:14:30 +0000 (21:14 +0300)
CMakeLists.txt
misc/winresource.rc [new file with mode: 0644]
src/CMakeLists.txt
src/winresource.rc [deleted file]

index fdecf51672764156eded85f362c5cae9e596905a..92ed7dbece07748327e7b3effda4641622c9660d 100644 (file)
@@ -7,10 +7,16 @@ endif(${CMAKE_VERSION} STREQUAL "2.8.2")
 # This can be read from ${PROJECT_NAME} after project() is called
 project(minetest)
 
+set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string")
+
 # Also remember to set PROTOCOL_VERSION in clientserver.h when releasing
 set(VERSION_MAJOR 0)
 set(VERSION_MINOR 4)
-set(VERSION_PATCH dev-20120326)
+if(VERSION_EXTRA)
+       set(VERSION_PATCH dev-20120326-${VERSION_EXTRA})
+else()
+       set(VERSION_PATCH dev-20120326)
+endif()
 set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
 
 MESSAGE(STATUS "*** Will build version ${VERSION_STRING} ***")
diff --git a/misc/winresource.rc b/misc/winresource.rc
new file mode 100644 (file)
index 0000000..8913ff5
--- /dev/null
@@ -0,0 +1,5 @@
+#include <windows.h>\r
+#include <commctrl.h>\r
+#include <richedit.h>\r
+LANGUAGE 0, SUBLANG_NEUTRAL\r
+130        ICON         "minetest-icon.ico"\r
index 56da7bd071835e3812eff5df2bbfe2147b48b311..261c8eeca4d9618d3873f78535e1f673c69e26c5 100644 (file)
@@ -67,7 +67,7 @@ endif(ENABLE_SOUND AND BUILD_CLIENT)
 
 if(SOUND_PROBLEM)
        message(FATAL_ERROR "Sound enabled, but cannot be used.\n"
-               "To continue, either fill in the required paths or disable sound.")
+               "To continue, either fill in the required paths or disable sound. (-DENABLE_SOUND=0)")
 endif()
 if(USE_SOUND)
        set(sound_SRCS sound_openal.cpp)
@@ -205,14 +205,19 @@ set(common_SRCS
 
 # This gives us the icon
 if(WIN32)
+       set(WINRESOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../misc/winresource.rc)
        if(MINGW)
+               if(NOT CMAKE_RC_COMPILER)
+                       set(CMAKE_RC_COMPILER "windres.exe")
+               endif()
                ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o
-                       COMMAND windres.exe -I${CMAKE_CURRENT_SOURCE_DIR}
-                       -i${CMAKE_CURRENT_SOURCE_DIR}/winresource.rc
-                       -o ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o)
+                       COMMAND ${CMAKE_RC_COMPILER} -I${CMAKE_CURRENT_SOURCE_DIR}
+                       -i${WINRESOURCE_FILE}
+                       -o ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o
+                       WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
                SET(common_SRCS ${common_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/winresource_rc.o)
        else(MINGW) # Probably MSVC
-               set(common_SRCS ${common_SRCS} winresource.rc)
+               set(common_SRCS ${common_SRCS} ${WINRESOURCE_FILE})
        endif(MINGW)
 endif()
 
@@ -348,14 +353,18 @@ else()
                        set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-unused-but-set-variable")
                endif(HAS_UNUSED_BUT_SET_VARIABLE_WARNING)
        endif()
-       
+
+       if(MINGW)
+               set(OTHER_FLAGS "-mthreads -fexceptions")
+       endif()
+
        if(APPLE)
                set(CMAKE_OSX_ARCHITECTURES i386 CACHE STRING "do not build for 64-bit" FORCE)
                set(ARCH i386)
        endif()
 
-       set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG ${RELEASE_WARNING_FLAGS} ${WARNING_FLAGS} -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops")
-       set(CMAKE_CXX_FLAGS_DEBUG "-g -O1 -Wall ${WARNING_FLAGS}")
+       set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG ${RELEASE_WARNING_FLAGS} ${WARNING_FLAGS} ${OTHER_FLAGS} -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops")
+       set(CMAKE_CXX_FLAGS_DEBUG "-g -O1 -Wall ${WARNING_FLAGS} ${OTHER_FLAGS}")
 
        if(USE_GPROF)
                set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -pg")
diff --git a/src/winresource.rc b/src/winresource.rc
deleted file mode 100644 (file)
index 4770c87..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <windows.h>\r
-#include <commctrl.h>\r
-#include <richedit.h>\r
-LANGUAGE 0, SUBLANG_NEUTRAL\r
-130        ICON         "..\\misc\\minetest-icon.ico"\r
-//131        BITMAP         "..\\misc\\minetest-icon.bmp"\r