mirror of
https://github.com/FWGS/hlsdk-xash3d
synced 2025-01-05 07:55:40 +01:00
Merge pull request #56 from FreeSlave/mingw
Add mingw support to CMakeLists.txt. Add crosscompiling instructions …
This commit is contained in:
commit
ffb9a75051
@ -8,7 +8,9 @@ os:
|
||||
sudo: true
|
||||
before_script:
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install gcc-multilib g++-multilib; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" && "CC" == "gcc" ]]; then sudo apt-get install mingw-w64-i686-dev binutils-mingw-w64-i686 gcc-mingw-w64-i686 g++-mingw-w64-i686; fi
|
||||
script:
|
||||
- mkdir -p build && cd build
|
||||
- cmake ../ -DCMAKE_EXE_LINKER_FLAGS="-Wl,--no-undefined" -DUSE_VOICEMGR=0 && make -j3 && rm -rf *
|
||||
- cmake ../ -DCMAKE_EXE_LINKER_FLAGS="-Wl,--no-undefined" -DUSE_VOICEMGR=1 && make -j3 && rm -rf *
|
||||
- cmake ../ -DCMAKE_EXE_LINKER_FLAGS="-Wl,--no-undefined" -DUSE_VOICEMGR=1 && make -j3 && rm -rf *
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" && "CC" == "gcc" ]]; then cd ..; mkdir build-mingw; cd build-mingw; cmake ../ -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_C_COMPILER=i686-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=i686-w64-mingw32-g++; make -j3; fi
|
||||
|
@ -72,6 +72,11 @@ else()
|
||||
message(STATUS "Building for 32 Bit")
|
||||
endif()
|
||||
|
||||
if (MINGW)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libstdc++ -static-libgcc")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--add-stdcall-alias")
|
||||
endif()
|
||||
|
||||
# add_compile_options for older cmake versions
|
||||
if(${CMAKE_VERSION} VERSION_LESS "3.0.2")
|
||||
macro(add_compile_options)
|
||||
|
@ -10,6 +10,12 @@ Half-Life SDK for Xash3D & GoldSource with some fixes.
|
||||
cmake ../
|
||||
make
|
||||
|
||||
Crosscompiling using mingw:
|
||||
|
||||
mkdir build-mingw && cd build-mingw
|
||||
TOOLCHAIN_PREFIX=i686-w64-mingw32 # check up the actual mingw prefix of your mingw installation
|
||||
cmake ../ -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_C_COMPILER="$TOOLCHAIN_PREFIX-gcc" -DCMAKE_CXX_COMPILER="$TOOLCHAIN_PREFIX-g++"
|
||||
|
||||
You may enable or disable some build options by -Dkey=value. All available build options are defined in CMakeLists.txt at root directory.
|
||||
See below if you want to build the GoldSource compatible libraries.
|
||||
|
||||
@ -68,6 +74,8 @@ or when using make without cmake:
|
||||
|
||||
Unlike original client by Valve the resulting client library will not depend on vgui or SDL2 just like the one that's used in FWGS Xash3d.
|
||||
|
||||
Note for **Windows**: it's not possible to create GoldSource compatible libraries using mingw, only msvc builds will work.
|
||||
|
||||
Note for **Linux**: GoldSource requires libraries (both client and server) to be compiled with libstdc++ bundled with g++ of major version 4 (versions from 4.6 to 4.9 should work).
|
||||
If your Linux distribution does not provide compatible g++ version you have several options.
|
||||
|
||||
|
@ -32,7 +32,10 @@ if(NOT MSVC)
|
||||
add_compile_options(-fno-exceptions) # GCC/Clang flag
|
||||
add_compile_options(-Wno-write-strings) # GCC/Clang flag
|
||||
add_definitions(-D_LINUX -DLINUX) # It seems enough for all non-Win32 systems
|
||||
add_definitions(-Dstricmp=strcasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf )
|
||||
add_definitions(-Dstricmp=strcasecmp -Dstrnicmp=strncasecmp)
|
||||
if(NOT MINGW)
|
||||
add_definitions(-D_snprintf=snprintf -D_vsnprintf=vsnprintf)
|
||||
endif()
|
||||
else()
|
||||
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE)
|
||||
endif()
|
||||
|
Loading…
Reference in New Issue
Block a user