- added support to cross compile win32 binary on Linux using cmake (just run build-mg-win32.sh)
This commit is contained in:
parent
8f579e735f
commit
f27cb6c8a3
|
@ -1,7 +1,7 @@
|
|||
CMAKE_MINIMUM_REQUIRED( VERSION 2.6.2 )
|
||||
PROJECT( MegaGlest )
|
||||
|
||||
#SET(CMAKE_VERBOSE_MAKEFILE ON)
|
||||
SET(CMAKE_VERBOSE_MAKEFILE ON)
|
||||
SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/mk/cmake/Modules)
|
||||
|
||||
IF(WIN32)
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
mkdir build-win32
|
||||
cd build-win32
|
||||
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=../mk/cmake/Modules/Toolchain-mingw32.cmake -DXERCESC_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include -DXERCESC_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib/libxerces-c2_8_0.dll -DOPENAL_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854 -DOPENAL_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/libs/OpenAL32.dll -DOGG_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include -DOGG_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/libs/libogg.dll -DVORBIS_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/libs/libvorbis.dll -DVORBIS_FILE_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/libs/libvorbisfile.dll -DLUA_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src -DLUA_LIBRARIES=${PROJECT_SOURCE_DIR}/source/win32_deps/libs/lua5.1.dll -DJPEG_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b -DJPEG_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/libs/libjpeg.dll -DZLIB_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5 -DZLIB_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/libs/libz.a -DPNG_PNG_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141 -DPNG_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/libs/libpng.dll -DCURL_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.20.1/include -DCURL_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/libs/libcurl.dll -DSDL_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include ..
|
||||
|
||||
make
|
||||
|
||||
#echo 'You may now launch mega-glest from this folder like this:'
|
||||
#echo '../mk/linux/glest.bin --ini-path=../mk/linux/ --data-path=../mk/linux/'
|
||||
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
cmake ..
|
||||
make
|
||||
|
||||
|
|
|
@ -5,22 +5,21 @@ SET(EXTERNAL_LIBS "")
|
|||
|
||||
IF(WIN32)
|
||||
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH}
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/lib
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib)
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/lib
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib)
|
||||
|
||||
SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH}
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/include
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.20.1/include
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include
|
||||
)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.20.1/include)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include)
|
||||
|
||||
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib)
|
||||
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib)
|
||||
ENDIF()
|
||||
|
@ -85,7 +84,7 @@ ENDIF()
|
|||
# glest game
|
||||
|
||||
SET(DIRS_WITH_SRC
|
||||
ai
|
||||
ai
|
||||
facilities
|
||||
game
|
||||
global
|
||||
|
@ -135,8 +134,11 @@ FOREACH(DIR IN LISTS DIRS_WITH_SRC)
|
|||
set(SRC_DIR_TO_GLOB ${DIR})
|
||||
FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.cpp)
|
||||
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR})
|
||||
FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.c)
|
||||
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR})
|
||||
FILE(GLOB INCLUDE_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.h)
|
||||
SET(MG_INCLUDE_FILES ${MG_INCLUDE_FILES} ${INCLUDE_FILES_FROM_THIS_DIR})
|
||||
|
||||
IF(APPLE)
|
||||
FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.mm)
|
||||
#MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}")
|
||||
|
@ -144,7 +146,7 @@ FOREACH(DIR IN LISTS DIRS_WITH_SRC)
|
|||
FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.m)
|
||||
#MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}")
|
||||
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR})
|
||||
ENDIF(APPLE)
|
||||
ENDIF(APPLE)
|
||||
ENDFOREACH(DIR)
|
||||
|
||||
# Force the version and date/time stamp file to be touched so the compile stamp is always right
|
||||
|
@ -193,7 +195,7 @@ ENDIF()
|
|||
message("CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
|
||||
|
||||
IF(WIN32)
|
||||
SET(TARGET_NAME "glest.exe")
|
||||
SET(TARGET_NAME "glest_game")
|
||||
ELSE()
|
||||
SET(TARGET_NAME "glest.bin")
|
||||
ENDIF()
|
||||
|
@ -208,8 +210,11 @@ SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1)
|
|||
|
||||
ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
|
||||
IF(WIN32)
|
||||
TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 SDL SDLmain lua5.1 streflop glest stdc++ moldname mingwex msvcrt user32 kernel32)
|
||||
TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 SDL SDLmain lua5.1 streflop libglest stdc++ moldname mingwex msvcrt user32 kernel32)
|
||||
ENDIF()
|
||||
IF(NOT WIN32)
|
||||
TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop)
|
||||
TARGET_LINK_LIBRARIES(${TARGET_NAME} glest_lib)
|
||||
TARGET_LINK_LIBRARIES(${TARGET_NAME} libglest)
|
||||
ENDIF()
|
||||
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS})
|
||||
|
||||
|
|
|
@ -9,6 +9,27 @@ ADD_SUBDIRECTORY(sources/streflop)
|
|||
|
||||
SET(EXTERNAL_LIBS "")
|
||||
|
||||
IF(WIN32)
|
||||
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH}
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/lib
|
||||
${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib)
|
||||
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854/include)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.20.1/include)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include)
|
||||
|
||||
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/lib)
|
||||
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib)
|
||||
ENDIF()
|
||||
|
||||
IF(WIN32)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/win32_deps/include)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/posix)
|
||||
|
@ -76,7 +97,7 @@ ENDIF()
|
|||
# glest lib
|
||||
|
||||
SET(DIRS_WITH_SRC
|
||||
platform/common
|
||||
platform/common
|
||||
util
|
||||
graphics
|
||||
graphics/gl
|
||||
|
@ -90,7 +111,7 @@ SET(DIRS_WITH_SRC
|
|||
map)
|
||||
|
||||
IF(APPLE)
|
||||
SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/sdl)
|
||||
SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/sdl)
|
||||
SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/posix)
|
||||
SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/macosx)
|
||||
ELSEIF(WIN32)
|
||||
|
@ -98,8 +119,8 @@ ELSEIF(WIN32)
|
|||
SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} sound/ds8)
|
||||
SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} ${PROJECT_SOURCE_DIR}/source/win32_deps/src)
|
||||
ELSE()
|
||||
SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/sdl)
|
||||
SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/posix)
|
||||
SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/sdl)
|
||||
SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/posix)
|
||||
SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} platform/unix)
|
||||
ENDIF()
|
||||
|
||||
|
@ -108,6 +129,15 @@ SET(MG_SOURCES_ROOT "sources/")
|
|||
SET(MG_INCLUDE_FILES "")
|
||||
SET(MG_SOURCE_FILES "")
|
||||
INCLUDE_DIRECTORIES( ${MG_INCLUDES_ROOT}platform/sdl )
|
||||
|
||||
IF(WIN32)
|
||||
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/posix/socket.cpp)
|
||||
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/gl_wrap.cpp)
|
||||
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/thread.cpp)
|
||||
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/window.cpp)
|
||||
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/platform/sdl/window_gl.cpp)
|
||||
SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/win32_deps/src/glprocs.c)
|
||||
ENDIF()
|
||||
|
||||
FOREACH(DIR IN LISTS DIRS_WITH_SRC)
|
||||
set(INCLUDE_DIR_TO_GLOB ${MG_INCLUDES_ROOT}${DIR})
|
||||
|
@ -149,9 +179,11 @@ ENDFOREACH(DIR)
|
|||
# FIXME: hackish, should be tested for
|
||||
IF(APPLE)
|
||||
SET(PLATFORM_SPECIFIC_DEFINES "-DHAVE_SYS_IOCTL_H")
|
||||
ELSE(APPLE)
|
||||
ELSEIF(WIN32)
|
||||
SET(PLATFORM_SPECIFIC_DEFINES "-DX11_AVAILABLE")
|
||||
ELSE()
|
||||
SET(PLATFORM_SPECIFIC_DEFINES "-DX11_AVAILABLE -DHAVE_SYS_IOCTL_H")
|
||||
ENDIF(APPLE)
|
||||
ENDIF()
|
||||
|
||||
# FIXME: hackish...
|
||||
SET(STREFLOP_PROPERTIES "-DSTREFLOP_SSE -DLIBM_COMPILING_FLT32")
|
||||
|
@ -165,13 +197,20 @@ SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1)
|
|||
# [RCL] FIXME: make it compiler-agnostic
|
||||
SET(CMAKE_CXX_FLAGS "-O3 -fno-strict-aliasing -frounding-math -fsignaling-nans -mfpmath=sse -msse")
|
||||
|
||||
# ADD_LIBRARY(glest_lib SHARED ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
|
||||
ADD_LIBRARY(glest_lib STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
|
||||
IF(WIN32)
|
||||
TARGET_LINK_LIBRARIES(glest_lib mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 winmm gdi32 opengl32 glu32)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_WINDOWS -D_WIN32 -D_STDCALL_SUPPORTED -D_M_IX86 -DXML_LIBRARY -D_LIB -DUSE_STREFLOP -DSTREFLOP_SSE -DSTREFLOP_RANDOM_GEN_SIZE=32 -DLIBM_COMPILING_FLT32 -DCURL_STATICLIB")
|
||||
ENDIF()
|
||||
TARGET_LINK_LIBRARIES(glest_lib streflop)
|
||||
TARGET_LINK_LIBRARIES(glest_lib ${EXTERNAL_LIBS})
|
||||
|
||||
#MESSAGE(STATUS "Source files: ${MG_SOURCE_FILES}")
|
||||
#MESSAGE(STATUS "Include files: ${MG_INCLUDE_FILES}")
|
||||
|
||||
#ADD_LIBRARY(libglest SHARED ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
|
||||
ADD_LIBRARY(libglest STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
|
||||
IF(WIN32)
|
||||
TARGET_LINK_LIBRARIES(libglest stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 SDL SDLmain lua5.1 streflop libglest stdc++ moldname mingwex msvcrt user32 kernel32)
|
||||
ENDIF()
|
||||
TARGET_LINK_LIBRARIES(libglest streflop)
|
||||
TARGET_LINK_LIBRARIES(libglest ${EXTERNAL_LIBS})
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue