summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rwxr-xr-xCMakeLists.txt2
-rw-r--r--cmake/msvc.cmake39
-rw-r--r--cmake/opentrack-build.cmake6
-rw-r--r--cmake/opentrack-platform.cmake12
4 files changed, 27 insertions, 32 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 074e4011..a90720a9 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -35,10 +35,10 @@ set(opentrack-all-translations nl_NL ru_RU stub)
include(opentrack-word-size)
include(opentrack-hier)
-include(opentrack-qt)
include(opentrack-platform)
include(opentrack-boilerplate)
+include(opentrack-qt)
include(opentrack-version)
include(opentrack-install)
diff --git a/cmake/msvc.cmake b/cmake/msvc.cmake
index e5912f46..f5915d99 100644
--- a/cmake/msvc.cmake
+++ b/cmake/msvc.cmake
@@ -12,12 +12,11 @@ SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
# oldest CPU supported here is Northwood-based Pentium 4. -sh 20150811
-set(cc "/O2it /Ob2 /fp:fast /GS- /GF /GL /Gw /Gy")
+set(cc "/O2 /O2it /Ob2 /fp:fast /GS- /GF /GL /Gw /Gy /Gm /Zc:inline /Zo /FS /Zc:implicitNoexcept /Zc:threadSafeInit")
set(warns_ "")
-#C4244: 'return': conversion from '__int64' to 'long', possible loss of data
-set(warns-disable 4530 4577 4789 4244)
+set(warns-disable 4530 4577 4789 4244 4702)
foreach(i ${warns-disable})
set(warns_ "${warns_} /wd${i}")
@@ -43,59 +42,53 @@ if(CMAKE_PROJECT_NAME STREQUAL "opentrack")
set(cc "${cc} /GR- /arch:SSE2")
endif()
-set(silly "${warns_} -MT -Gm -Zi")
+set(base-cflags "${warns_} -MT -Zi")
-set(_CFLAGS "${silly}")
-set(_CXXFLAGS "${silly}")
+set(_CFLAGS "${base-cflags}")
+set(_CXXFLAGS "${base-cflags}")
set(_CFLAGS_RELEASE "${cc}")
set(_CFLAGS_DEBUG "/GS /sdl /Gs /guard:cf")
set(_CXXFLAGS_RELEASE "${cc}")
set(_CXXFLAGS_DEBUG "${_CFLAGS_DEBUG}")
-set(_LDFLAGS "")
+set(_LDFLAGS "/machine:X86 /DEBUG")
set(_LDFLAGS_RELEASE "/LTCG:INCREMENTAL /OPT:REF /OPT:ICF=10")
set(_LDFLAGS_DEBUG "")
-set(_LDFLAGS_STATIC "/WX")
+set(_LDFLAGS_STATIC "/machine:X86 /WX")
set(_LDFLAGS_STATIC_RELEASE "/LTCG:INCREMENTAL")
set(_LDFLAGS_STATIC_DEBUG "")
foreach(j C CXX)
foreach(i "" _DEBUG _RELEASE)
- set(OVERRIDE_${j}_FLAGS${i} "" CACHE STRING "")
- set(CMAKE_${j}_FLAGS${i} "${_${j}FLAGS${i}} ${OVERRIDE_${j}_FLAGS${i}}" CACHE STRING "" FORCE)
+ set(CMAKE_${j}_FLAGS${i} "${_${j}FLAGS${i}} ${CMAKE_${j}_FLAGS${i}}")
endforeach()
- set(CMAKE_${j}_FLAGS "${_${j}FLAGS} ${_${j}_WARNS} ${OVERRIDE_${j}_FLAGS}" CACHE STRING "" FORCE)
+ set(CMAKE_${j}_FLAGS "${_${j}FLAGS} ${_${j}_WARNS} ${CMAKE_${j}_FLAGS}")
endforeach()
foreach(j "" _DEBUG _RELEASE)
foreach(i MODULE EXE SHARED)
- set(OVERRIDE_LDFLAGS${j} "" CACHE STRING "")
- set(CMAKE_${i}_LINKER_FLAGS${j} "${_LDFLAGS${j}} ${OVERRIDE_LDFLAGS${j}}" CACHE STRING "" FORCE)
+ set(CMAKE_${i}_LINKER_FLAGS${j} "${_LDFLAGS${j}} ${CMAKE_${i}_LINKER_FLAGS${j}}")
endforeach()
endforeach()
-set(OVERRIDE_LDFLAGS_STATIC "" CACHE STRING "")
-set(OVERRIDE_LDFLAGS_STATIC_RELEASE "" CACHE STRING "")
-set(OVERRIDE_LDFLAGS_STATIC_DEBUG "" CACHE STRING "")
-
-set(CMAKE_STATIC_LINKER_FLAGS "${_LDFLAGS_STATIC} ${OVERRIDE_LDFLAGS_STATIC}" CACHE STRING "" FORCE)
-set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "${_LDFLAGS_STATIC_RELEASE} ${OVERRIDE_LDFLAGS_STATIC_RELEASE}" CACHE STRING "" FORCE)
-set(CMAKE_STATIC_LINKER_FLAGS_DEBUG "${_LDFLAGS_STATIC_DEBUG} ${OVERRIDE_LDFLAGS_STATIC_DEBUG}" CACHE STRING "" FORCE)
+set(CMAKE_STATIC_LINKER_FLAGS "${_LDFLAGS_STATIC} ${CMAKE_STATIC_LINKER_FLAGS}")
+set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "${_LDFLAGS_STATIC_RELEASE} ${CMAKE_STATIC_LINKER_FLAGS_RELEASE}")
+set(CMAKE_STATIC_LINKER_FLAGS_DEBUG "${_LDFLAGS_STATIC_DEBUG} ${CMAKE_STATIC_LINKER_FLAGS_DEBUG}")
set(CMAKE_BUILD_TYPE_INIT RELEASE)
# for nmake/jom build directories
if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE "RELEASE" CACHE STRING "" FORCE)
+ set(CMAKE_BUILD_TYPE "RELEASE")
endif()
if(CMAKE_PROJECT_NAME STREQUAL "opentrack")
foreach (i CMAKE_CXX_FLAGS CMAKE_C_FLAGS)
string(REGEX MATCH "((^| )[-/][W][0-9]( |\$))" ret "${${i}}")
if(ret STREQUAL "")
- set(${i} "-W3 ${${i}}" CACHE STRING "" FORCE)
+ set(${i} "-W3 ${${i}}")
endif()
endforeach()
endif()
-set(CMAKE_RC_FLAGS "-nologo -DWIN32" CACHE STRING "" FORCE)
+set(CMAKE_RC_FLAGS "-nologo -DWIN32")
diff --git a/cmake/opentrack-build.cmake b/cmake/opentrack-build.cmake
index 4fe8fde0..ab2bb3b8 100644
--- a/cmake/opentrack-build.cmake
+++ b/cmake/opentrack-build.cmake
@@ -8,13 +8,15 @@
# PERFORMANCE OF THIS SOFTWARE.
if(NOT CMAKE_INSTALL_PREFIX)
- set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "" FORCE)
+ set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install")
endif()
set(CMAKE_BUILD_TYPE_INIT "RELEASE")
if(APPLE)
- set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "" FORCE)
+ if(NOT CMAKE_OSX_ARCHITECTURES)
+ set(CMAKE_OSX_ARCHITECTURES "x86_64")
+ endif()
endif()
function(cleanup_build_dir)
diff --git a/cmake/opentrack-platform.cmake b/cmake/opentrack-platform.cmake
index 9d5b1abe..9c1d73a7 100644
--- a/cmake/opentrack-platform.cmake
+++ b/cmake/opentrack-platform.cmake
@@ -41,9 +41,10 @@ IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
endif()
if(MSVC)
- add_definitions(-DNOMINMAX -D_CRT_SECURE_NO_WARNINGS)
- add_definitions(-D_ITERATOR_DEBUG_LEVEL=0 -D_HAS_ITERATOR_DEBUGGING=0 -D_SECURE_SCL=0)
- add_definitions(-DHAS_EXCEPTIONS=0)
+ add_definitions(-DNOMINMAX -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS)
+ add_definitions(-D_ITERATOR_DEBUG_LEVEL=0 -D_ITERATOR_DEBUG_LEVEL=0)
+ add_definitions(-D_HAS_EXCEPTIONS=0)
+
set(CMAKE_CXX_FLAGS "-std:c++14 ${CMAKE_CXX_FLAGS}")
if(SDK_INSTALL_DEBUG_INFO)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Zi")
@@ -112,7 +113,6 @@ function(fix_flags lang flag replacement)
if(".${replacement}" STREQUAL ".")
set(pfx "")
endif()
- otr_escape_string(flag "${flag}")
foreach(k _DEBUG _RELEASE _MINSIZEREL _RELWITHDEBINFO "")
set(tmp "${CMAKE_${lang}_FLAGS${k}}")
if(NOT ".${replacement}" STREQUAL ".")
@@ -120,9 +120,9 @@ function(fix_flags lang flag replacement)
endif()
string(REGEX REPLACE "(^| )${part}${flag}(\$| )" " ${pfx}${replacement}" CMAKE_${lang}_FLAGS${k} "${CMAKE_${lang}_FLAGS${k}}")
if(NOT ".${tmp}" STREQUAL ".${CMAKE_${lang}_FLAGS${k}}")
- set(CMAKE_${lang}_FLAGS${k} "${CMAKE_${lang}_FLAGS${k}}" CACHE STRING "" FORCE)
+ set(CMAKE_${lang}_FLAGS${k} "${CMAKE_${lang}_FLAGS${k}}" CACHE STRING "")
else()
- set(CMAKE_${lang}_FLAGS${k} "${CMAKE_${lang}_FLAGS${k}} ${pfx}${replacement}" CACHE STRING "" FORCE)
+ set(CMAKE_${lang}_FLAGS${k} "${CMAKE_${lang}_FLAGS${k}} ${pfx}${replacement}" CACHE STRING "")
endif()
endforeach()
endfunction()