Browse files

Merge pull request #218 from BMBurstein/master

fix for static builds with mingw-w64 compilers
  • Loading branch information...
2 parents a97577c + f784fe4 commit 274d316891dc0c2f56d81d35b609f84abed66448 @LaurentGomila LaurentGomila committed Feb 17, 2013
Showing with 11 additions and 4 deletions.
  1. +5 −1 cmake/Config.cmake
  2. +6 −3 cmake/Macros.cmake
View
6 cmake/Config.cmake
@@ -1,4 +1,3 @@
-
# detect the OS
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
set(WINDOWS 1)
@@ -47,6 +46,11 @@ elseif(CMAKE_COMPILER_IS_GNUCXX)
set(COMPILER_GCC 1)
execute_process(COMMAND "${CMAKE_CXX_COMPILER}" "-dumpversion" OUTPUT_VARIABLE GCC_VERSION_OUTPUT)
string(REGEX REPLACE "([0-9]+\\.[0-9]+).*" "\\1" GCC_VERSION "${GCC_VERSION_OUTPUT}")
+ execute_process(COMMAND "${CMAKE_CXX_COMPILER}" "-dumpmachine" OUTPUT_VARIABLE GCC_MACHINE)
+ string(STRIP "${GCC_MACHINE}" GCC_MACHINE)
+ if(${GCC_MACHINE} MATCHES ".*w64.*")
+ set(COMPILER_GCC_W64 1)
+ endif()
elseif(MSVC)
set(COMPILER_MSVC 1)
if(MSVC_VERSION EQUAL 1400)
View
9 cmake/Macros.cmake
@@ -1,4 +1,3 @@
-
# some of these macros are inspired from the boost/cmake macros
# this macro adds external dependencies to a static target,
@@ -16,7 +15,11 @@ macro(sfml_static_add_libraries target)
foreach(lib ${ARGN})
if(NOT ${lib} MATCHES ".*/.*")
string(REGEX REPLACE "(.*)/bin/.*\\.exe" "\\1" STANDARD_LIBS_PATH "${CMAKE_CXX_COMPILER}")
- set(lib "${STANDARD_LIBS_PATH}/lib/lib${lib}.a")
+ if(COMPILER_GCC_W64)
+ set(lib "${STANDARD_LIBS_PATH}/${GCC_MACHINE}/lib/lib${lib}.a")
+ else()
+ set(lib "${STANDARD_LIBS_PATH}/lib/lib${lib}.a")
+ endif()
endif()
string(TOUPPER ${CMAKE_BUILD_TYPE} BUILD_TYPE)
get_target_property(TARGET_FILENAME ${target} ${BUILD_TYPE}_LOCATION)
@@ -43,7 +46,7 @@ macro(sfml_static_add_libraries target)
endif()
endforeach()
set_target_properties(${target} PROPERTIES STATIC_LIBRARY_FLAGS ${LIBRARIES})
- else()
+ else()
# All other platforms
target_link_libraries(${target} ${ARGN})
endif()

0 comments on commit 274d316

Please sign in to comment.