Browse Source

Attempt to fix MinGW build and some other code cleanup.

Wei Tjong Yao 12 years ago
parent
commit
ddc3670238

+ 1 - 1
Source/Tools/AssetImporter/CMakeLists.txt

@@ -34,6 +34,6 @@ set (INCLUDE_DIRS_ONLY ../../ThirdParty/Bullet/src)
 
 # Setup target
 if (APPLE)
-    set (CMAKE_EXE_LINKER_FLAGS "-framework AudioUnit -framework Carbon -framework Cocoa -framework CoreAudio -framework ForceFeedback -framework IOKit -framework OpenGL -framework CoreServices")
+    setup_macosx_framework (CMAKE_EXE_LINKER_FLAGS)
 endif ()
 setup_executable ()

+ 1 - 1
Source/Tools/ScriptCompiler/CMakeLists.txt

@@ -33,6 +33,6 @@ set (LIBS ../../Engine/Container ../../Engine/Core ../../Engine/Engine ../../Eng
 
 # Setup target
 if (APPLE)
-    set (CMAKE_EXE_LINKER_FLAGS "-framework AudioUnit -framework Carbon -framework Cocoa -framework CoreAudio -framework ForceFeedback -framework IOKit -framework OpenGL")
+    setup_macosx_framework (CMAKE_EXE_LINKER_FLAGS)
 endif ()
 setup_executable ()

+ 9 - 3
Source/cmake/Modules/Urho3D-CMake-magic.cmake

@@ -130,8 +130,8 @@ else ()
         set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector")
         set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-offsetof -fstack-protector")
     elseif (NOT IOS)
-        set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -ffast-math")
-        set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-offsetof -O2 -ffast-math")
+        set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffast-math")
+        set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-offsetof -ffast-math")
         if (RASPI)
             add_definitions (-DRASPI)
             set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe -mcpu=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard")
@@ -157,6 +157,12 @@ else ()
         if (WIN32)
             set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libgcc")
             set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libstdc++ -static-libgcc")
+            # Additional compiler flags for Windows ports of GCC
+            set (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG")
+            set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG")           
+            # Reduce GCC optimization level from -O3 to -O2 for stability in RELEASE build type
+            set (CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG")
+            set (CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
         endif ()
     endif ()
     set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG")
@@ -348,7 +354,7 @@ macro (setup_main_executable)
     endif ()
 
     # Define external dependency libraries, for the convenience of other main target (not in Urho3D project) referencing Urho3D as external library
-    if (NOT TARGET_NAME STREQUAL Main)
+    if (NOT CMAKE_PROJECT_NAME STREQUAL Urho3D AND NOT TARGET_NAME STREQUAL Main)
         define_dependency_libs (Main)
     endif ()
 

+ 2 - 2
Source/cmake/Toolchains/android.toolchain.cmake

@@ -1455,8 +1455,8 @@ endif()
 set( CMAKE_CXX_FLAGS           ""                        CACHE STRING "c++ flags" )
 set( CMAKE_C_FLAGS             ""                        CACHE STRING "c flags" )
 # Urho3D: optimise for size
-set( CMAKE_CXX_FLAGS_RELEASE   "-Os -g -DNDEBUG"         CACHE STRING "c++ Release flags" )
-set( CMAKE_C_FLAGS_RELEASE     "-Os -g -DNDEBUG"         CACHE STRING "c Release flags" )
+set( CMAKE_CXX_FLAGS_RELEASE   "-Os -DNDEBUG"            CACHE STRING "c++ Release flags" )
+set( CMAKE_C_FLAGS_RELEASE     "-Os -DNDEBUG"            CACHE STRING "c Release flags" )
 set( CMAKE_CXX_FLAGS_DEBUG     "-O0 -g -DDEBUG -D_DEBUG" CACHE STRING "c++ Debug flags" )
 set( CMAKE_C_FLAGS_DEBUG       "-O0 -g -DDEBUG -D_DEBUG" CACHE STRING "c Debug flags" )
 set( CMAKE_SHARED_LINKER_FLAGS ""                        CACHE STRING "shared linker flags" )

+ 3 - 2
cmake_android.bat

@@ -19,8 +19,9 @@ if "%use_mklink%" == "1" (
     set "build=android-Build"
     set "source=..\Source"
     for %%d in (CoreData Data) do mklink /D "Source\Android\assets\%%d" "..\..\..\Bin\%%d"
-    for %%f in (src res assets) do mklink /D "android-Build/%%f" "..\Source\Android\%%f"
-    for %%f in (AndroidManifest.xml build.xml project.properties) do mklink "android-Build/%%f" "..\Source\Android\%%f"
+    for %%d in (src res assets) do mklink /D "android-Build\%%d" "..\Source\Android\%%d"
+    for %%f in (AndroidManifest.xml build.xml project.properties) do mklink "android-Build\%%f" "..\Source\Android\%%f"
 )
+cmake -E copy_if_different Docs/Doxyfile.in Doxyfile
 echo on
 cmake -E chdir %build% cmake -G "Unix Makefiles" -DANDROID=1 -DCMAKE_TOOLCHAIN_FILE=%source%\cmake\Toolchains\android.toolchain.cmake -DLIBRARY_OUTPUT_PATH_ROOT=. %source% %*

+ 1 - 0
cmake_vs2012.bat

@@ -12,5 +12,6 @@ if not "%1" == "" (
     shift
     goto loop
 )
+cmake -E copy_if_different Docs/Doxyfile.in Doxyfile
 echo on
 cmake -E chdir Build cmake -G "Visual Studio %version%%arch%" ../Source %*