diff --git a/CMakeLists.txt b/CMakeLists.txt index 81a35cf8c9..4080a08143 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -113,6 +113,17 @@ else() message("No discord-rpc detected, to enable clone discord-rpc to root directory: ${ROOT_DIR}") endif() +# Copied from https://github.com/opencv/opencv/blob/dcdd6af5a856826fe62c95322145731e702e54c5/cmake/OpenCVDetectCXXCompiler.cmake#L63-L70 +if(MSVC64 OR MINGW64) + set(X86_64 1) +elseif(MINGW OR (MSVC AND NOT CMAKE_CROSSCOMPILING)) + set(X86 1) +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*") + set(X86_64 1) +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i686.*|i386.*|x86.*|amd64.*|AMD64.*") + set(X86 1) +endif() + # Include sub-projects include("${ROOT_DIR}/src/openrct2/CMakeLists.txt" NO_POLICY_SCOPE) include("${ROOT_DIR}/src/openrct2-cli/CMakeLists.txt" NO_POLICY_SCOPE) diff --git a/src/openrct2/CMakeLists.txt b/src/openrct2/CMakeLists.txt index cdc4cbd617..a12fa8c5b6 100644 --- a/src/openrct2/CMakeLists.txt +++ b/src/openrct2/CMakeLists.txt @@ -207,3 +207,7 @@ if (NOT OPENRCT2_COMMIT_SHA1_SHORT STREQUAL "HEAD") ${CMAKE_CURRENT_LIST_DIR}/Crash/Platform.cpp PROPERTY COMPILE_DEFINITIONS OPENRCT2_COMMIT_SHA1_SHORT="${OPENRCT2_COMMIT_SHA1_SHORT}") endif() + +if(X86 OR X86_64) +set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/drawing/SSE41Drawing.cpp PROPERTIES COMPILE_FLAGS -msse4.1) +endif()