Changed VS version to MSVC version and added support for VS 2013 and TDM compilers.

This commit is contained in:
Lukas Dürrenberger 2013-10-15 15:46:50 +02:00
parent 3670eec5dd
commit 004c12cfd2
2 changed files with 18 additions and 10 deletions

View File

@ -45,6 +45,8 @@ elseif(CMAKE_COMPILER_IS_GNUCXX)
set(SFML_COMPILER_GCC 1) set(SFML_COMPILER_GCC 1)
execute_process(COMMAND "${CMAKE_CXX_COMPILER}" "-dumpversion" OUTPUT_VARIABLE GCC_VERSION_OUTPUT) execute_process(COMMAND "${CMAKE_CXX_COMPILER}" "-dumpversion" OUTPUT_VARIABLE GCC_VERSION_OUTPUT)
string(REGEX REPLACE "([0-9]+\\.[0-9]+).*" "\\1" SFML_GCC_VERSION "${GCC_VERSION_OUTPUT}") string(REGEX REPLACE "([0-9]+\\.[0-9]+).*" "\\1" SFML_GCC_VERSION "${GCC_VERSION_OUTPUT}")
execute_process(COMMAND "${CMAKE_CXX_COMPILER}" "--version" OUTPUT_VARIABLE GCC_COMPILER_VERSION)
string(REGEX MATCHALL ".*(tdm[64]*-[1-9]).*" SFML_COMPILER_GCC_TDM "${GCC_COMPILER_VERSION}")
execute_process(COMMAND "${CMAKE_CXX_COMPILER}" "-dumpmachine" OUTPUT_VARIABLE GCC_MACHINE) execute_process(COMMAND "${CMAKE_CXX_COMPILER}" "-dumpmachine" OUTPUT_VARIABLE GCC_MACHINE)
string(STRIP "${GCC_MACHINE}" GCC_MACHINE) string(STRIP "${GCC_MACHINE}" GCC_MACHINE)
if(${GCC_MACHINE} MATCHES ".*w64.*") if(${GCC_MACHINE} MATCHES ".*w64.*")
@ -53,13 +55,15 @@ elseif(CMAKE_COMPILER_IS_GNUCXX)
elseif(MSVC) elseif(MSVC)
set(SFML_COMPILER_MSVC 1) set(SFML_COMPILER_MSVC 1)
if(MSVC_VERSION EQUAL 1400) if(MSVC_VERSION EQUAL 1400)
set(SFML_MSVC_VERSION 2005) set(SFML_MSVC_VERSION 8)
elseif(MSVC_VERSION EQUAL 1500) elseif(MSVC_VERSION EQUAL 1500)
set(SFML_MSVC_VERSION 2008) set(SFML_MSVC_VERSION 9)
elseif(MSVC_VERSION EQUAL 1600) elseif(MSVC_VERSION EQUAL 1600)
set(SFML_MSVC_VERSION 2010) set(SFML_MSVC_VERSION 10)
elseif(MSVC_VERSION EQUAL 1700) elseif(MSVC_VERSION EQUAL 1700)
set(SFML_MSVC_VERSION 2011) set(SFML_MSVC_VERSION 11)
elseif(MSVC_VERSION EQUAL 1800)
set(SFML_MSVC_VERSION 12)
endif() endif()
else() else()
message(FATAL_ERROR "Unsupported compiler") message(FATAL_ERROR "Unsupported compiler")

View File

@ -37,8 +37,8 @@ macro(sfml_static_add_libraries target)
if(NOT ${lib} MATCHES ".*\\.lib") if(NOT ${lib} MATCHES ".*\\.lib")
set(lib ${lib}.lib) set(lib ${lib}.lib)
endif() endif()
if(MSVC_IDE AND SFML_MSVC_VERSION LESS 2010) if(MSVC_IDE AND SFML_MSVC_VERSION LESS 10)
# for Visual Studio projects < 2010, we must add double quotes # for Visual Studio projects < 10, we must add double quotes
# around paths because they may contain spaces # around paths because they may contain spaces
set(LIBRARIES "${LIBRARIES} &quot\\;${lib}&quot\\;") set(LIBRARIES "${LIBRARIES} &quot\\;${lib}&quot\\;")
else() else()
@ -99,9 +99,11 @@ macro(sfml_add_library target)
set_target_properties(${target} PROPERTIES FOLDER "SFML") set_target_properties(${target} PROPERTIES FOLDER "SFML")
# for gcc >= 4.0 on Windows, apply the SFML_USE_STATIC_STD_LIBS option if it is enabled # for gcc >= 4.0 on Windows, apply the SFML_USE_STATIC_STD_LIBS option if it is enabled
if(SFML_OS_WINDOWS AND SFML_COMPILER_GCC AND SFML_USE_STATIC_STD_LIBS) if(SFML_OS_WINDOWS AND SFML_COMPILER_GCC AND NOT SFML_GCC_VERSION VERSION_LESS "4")
if(NOT SFML_GCC_VERSION VERSION_LESS "4") if(SFML_USE_STATIC_STD_LIBS AND NOT SFML_COMPILER_GCC_TDM)
set_target_properties(${target} PROPERTIES LINK_FLAGS "-static-libgcc -static-libstdc++") set_target_properties(${target} PROPERTIES LINK_FLAGS "-static-libgcc -static-libstdc++")
elseif(NOT SFML_USE_STATIC_STD_LIBS AND SFML_COMPILER_GCC_TDM)
set_target_properties(${target} PROPERTIES LINK_FLAGS "-shared-libgcc -shared-libstdc++")
endif() endif()
endif() endif()
@ -182,9 +184,11 @@ macro(sfml_add_example target)
set_target_properties(${target} PROPERTIES FOLDER "Examples") set_target_properties(${target} PROPERTIES FOLDER "Examples")
# for gcc >= 4.0 on Windows, apply the SFML_USE_STATIC_STD_LIBS option if it is enabled # for gcc >= 4.0 on Windows, apply the SFML_USE_STATIC_STD_LIBS option if it is enabled
if(SFML_OS_WINDOWS AND SFML_COMPILER_GCC AND SFML_USE_STATIC_STD_LIBS) if(SFML_OS_WINDOWS AND SFML_COMPILER_GCC AND NOT SFML_GCC_VERSION VERSION_LESS "4")
if(NOT SFML_GCC_VERSION VERSION_LESS "4") if(SFML_USE_STATIC_STD_LIBS AND NOT SFML_COMPILER_GCC_TDM)
set_target_properties(${target} PROPERTIES LINK_FLAGS "-static-libgcc -static-libstdc++") set_target_properties(${target} PROPERTIES LINK_FLAGS "-static-libgcc -static-libstdc++")
elseif(NOT SFML_USE_STATIC_STD_LIBS AND SFML_COMPILER_GCC_TDM)
set_target_properties(${target} PROPERTIES LINK_FLAGS "-shared-libgcc -shared-libstdc++")
endif() endif()
endif() endif()