Browse Source

Attempt to fix the MinGW failed build due to linker runs out of mem.
Add -fno-keep-inline-dllexport compiler option when building using MinGW in order to reduce the object size and the link time (and thus hopefully reduce the linker memory consumption as well).

Yao Wei Tjong 姚伟忠 11 years ago
parent
commit
c26038fe05
3 changed files with 4 additions and 4 deletions
  1. 1 1
      .travis.yml
  2. 2 2
      Source/CMake/Modules/Urho3D-CMake-common.cmake
  3. 1 1
      cmake_gcc.sh

+ 1 - 1
.travis.yml

@@ -29,7 +29,7 @@ env:
   matrix:
     - LINUX=1               URHO3D_64BIT=1 URHO3D_LIB_TYPE=STATIC SITE_UPDATE=1
     - LINUX=1               URHO3D_64BIT=1 URHO3D_LIB_TYPE=SHARED
-    - WINDOWS=1 ARCH=x86_64 URHO3D_64BIT=1 URHO3D_LIB_TYPE=STATIC NUMJOBS=2
+    - WINDOWS=1 ARCH=x86_64 URHO3D_64BIT=1 URHO3D_LIB_TYPE=STATIC
     - WINDOWS=1 ARCH=x86_64 URHO3D_64BIT=1 URHO3D_LIB_TYPE=SHARED
     - LINUX=1                              URHO3D_LIB_TYPE=STATIC
     - LINUX=1                              URHO3D_LIB_TYPE=SHARED

+ 2 - 2
Source/CMake/Modules/Urho3D-CMake-common.cmake

@@ -281,8 +281,8 @@ else ()
         endif ()
         # MinGW-specific setup
         if (WIN32)
-            set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static -static-libgcc")
-            set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static -static-libstdc++ -static-libgcc")
+            set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static -static-libgcc -fno-keep-inline-dllexport")
+            set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static -static-libstdc++ -static-libgcc -fno-keep-inline-dllexport")
             set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -static")
             # Additional compiler flags for Windows ports of GCC
             set (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG")

+ 1 - 1
cmake_gcc.sh

@@ -47,7 +47,7 @@ GENERATOR="Unix Makefiles"
 OPT=
 [ $ANDROID_NDK ] && msg "Android build" && cmake -E make_directory android-Build && cmake -E chdir android-Build cmake $OPT -G $GENERATOR -DANDROID=1 -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAINS/android.toolchain.cmake -DLIBRARY_OUTPUT_PATH_ROOT=. $@ $SOURCE && post_cmake android-Build
 [ $RASPI_TOOL ] && msg "Raspberry Pi build" && cmake -E make_directory raspi-Build && cmake -E chdir raspi-Build cmake $OPT -G $GENERATOR -DRASPI=1 -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAINS/raspberrypi.toolchain.cmake $@ $SOURCE && post_cmake raspi-Build
-[ $MINGW_PREFIX ] && msg "MingW build" && cmake -E make_directory mingw-Build && cmake -E chdir mingw-Build cmake $OPT -G $GENERATOR -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAINS/mingw.toolchain.cmake $@ $SOURCE && post_cmake mingw-Build
+[ $MINGW_PREFIX ] && msg "MinGW build" && cmake -E make_directory mingw-Build && cmake -E chdir mingw-Build cmake $OPT -G $GENERATOR -DCMAKE_TOOLCHAIN_FILE=$TOOLCHAINS/mingw.toolchain.cmake $@ $SOURCE && post_cmake mingw-Build
 [ ! $SKIP_NATIVE ] && msg "Native build" && cmake -E make_directory Build && cmake -E chdir Build cmake $OPT -G $GENERATOR $PLATFORM $@ $SOURCE && post_cmake Build
 unset IFS