# This file is automatically generated from cmake.toml - DO NOT EDIT # See https://github.com/build-cpp/cmkr for more information cmake_minimum_required(VERSION 3.15) if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) message(FATAL_ERROR "In-tree builds are not supported. Run CMake from a separate directory: cmake -B build") endif() set(CMKR_ROOT_PROJECT OFF) if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) set(CMKR_ROOT_PROJECT ON) # Bootstrap cmkr and automatically regenerate CMakeLists.txt include(cmkr.cmake OPTIONAL RESULT_VARIABLE CMKR_INCLUDE_RESULT) if(CMKR_INCLUDE_RESULT) cmkr() endif() # Enable folder support set_property(GLOBAL PROPERTY USE_FOLDERS ON) # Create a configure-time dependency on cmake.toml to improve IDE support configure_file(cmake.toml cmake.toml COPYONLY) endif() project(outrun2006tweaks-proj) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") set(ASMJIT_STATIC ON CACHE BOOL "" FORCE) # disable unneeded FLAC stuff set(INSTALL_MANPAGES OFF CACHE BOOL "" FORCE) set(BUILD_CXXLIBS OFF CACHE BOOL "" FORCE) set(BUILD_DOCS OFF CACHE BOOL "" FORCE) set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) set(BUILD_PROGRAMS OFF CACHE BOOL "" FORCE) set(BUILD_TESTING OFF CACHE BOOL "" FORCE) set(UPNPC_BUILD_TESTS OFF CACHE BOOL "" FORCE) set(UPNPC_BUILD_SAMPLE OFF CACHE BOOL "" FORCE) set(UPNPC_BUILD_SHARED OFF CACHE BOOL "" FORCE) set(JSONCPP_STATIC_WINDOWS_RUNTIME OFF CACHE BOOL "" FORCE) set(JSONCPP_WITH_TESTS OFF CACHE BOOL "" FORCE) set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) set(BUILD_STATIC_LIBS ON CACHE BOOL "" FORCE) set(BUILD_OBJECT_LIBS ON CACHE BOOL "" FORCE) set(SDL_TEST_LIBRARY OFF CACHE BOOL "" FORCE) option(ZYDIS_BUILD_TOOLS "" OFF) option(ZYDIS_BUILD_EXAMPLES "" OFF) option(JSONCPP_WITH_TESTS "" OFF) option(JSONCPP_STATIC_WINDOWS_RUNTIME "" OFF) if ("${CMAKE_BUILD_TYPE}" MATCHES "Release") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MT") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MT") # Statically compile runtime string(REGEX REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") string(REGEX REPLACE "/MD" "/MT" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") string(REGEX REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") string(REGEX REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded") message(NOTICE "Building in Release mode") endif() include(FetchContent) # Fix warnings about DOWNLOAD_EXTRACT_TIMESTAMP if(POLICY CMP0135) cmake_policy(SET CMP0135 NEW) endif() message(STATUS "Fetching zydis (v4.0.0)...") FetchContent_Declare(zydis GIT_REPOSITORY "https://github.com/zyantific/zydis" GIT_TAG v4.0.0 ) FetchContent_MakeAvailable(zydis) message(STATUS "Fetching safetyhook (629558c64009a7291ba6ed5cfb49187086a27a47)...") FetchContent_Declare(safetyhook GIT_REPOSITORY "https://github.com/cursey/safetyhook" GIT_TAG 629558c64009a7291ba6ed5cfb49187086a27a47 ) FetchContent_MakeAvailable(safetyhook) message(STATUS "Fetching ogg (v1.3.5)...") FetchContent_Declare(ogg GIT_REPOSITORY "https://github.com/xiph/ogg" GIT_TAG v1.3.5 ) FetchContent_MakeAvailable(ogg) message(STATUS "Fetching flac (1.4.3)...") FetchContent_Declare(flac GIT_REPOSITORY "https://github.com/xiph/flac" GIT_TAG 1.4.3 ) FetchContent_MakeAvailable(flac) message(STATUS "Fetching miniupnpc (miniupnpd_2_3_7)...") FetchContent_Declare(miniupnpc GIT_REPOSITORY "https://github.com/miniupnp/miniupnp" GIT_TAG miniupnpd_2_3_7 SOURCE_SUBDIR miniupnpc ) FetchContent_MakeAvailable(miniupnpc) message(STATUS "Fetching jsoncpp (1.9.6)...") FetchContent_Declare(jsoncpp GIT_REPOSITORY "https://github.com/open-source-parsers/jsoncpp.git" GIT_TAG 1.9.6 ) FetchContent_MakeAvailable(jsoncpp) message(STATUS "Fetching zlib (v1.3.1)...") FetchContent_Declare(zlib GIT_REPOSITORY "https://github.com/madler/zlib" GIT_TAG v1.3.1 ) FetchContent_MakeAvailable(zlib) message(STATUS "Fetching sdl (preview-3.1.8)...") FetchContent_Declare(sdl GIT_REPOSITORY "https://github.com/libsdl-org/SDL" GIT_TAG preview-3.1.8 ) FetchContent_MakeAvailable(sdl) # Target: spdlog set(spdlog_SOURCES cmake.toml "external/spdlog/src/async.cpp" "external/spdlog/src/bundled_fmtlib_format.cpp" "external/spdlog/src/cfg.cpp" "external/spdlog/src/color_sinks.cpp" "external/spdlog/src/file_sinks.cpp" "external/spdlog/src/spdlog.cpp" "external/spdlog/src/stdout_sinks.cpp" ) add_library(spdlog STATIC) target_sources(spdlog PRIVATE ${spdlog_SOURCES}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${spdlog_SOURCES}) target_compile_definitions(spdlog PUBLIC SPDLOG_COMPILED_LIB _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR ) target_include_directories(spdlog PUBLIC "external/spdlog/include" ) # Target: outrun2006tweaks set(outrun2006tweaks_SOURCES OutRun2006Tweaks.ini OutRun2006Tweaks.lods.ini cmake.toml "external/IXWebSocket/ixwebsocket/IXBase64.h" "external/IXWebSocket/ixwebsocket/IXBench.cpp" "external/IXWebSocket/ixwebsocket/IXBench.h" "external/IXWebSocket/ixwebsocket/IXCancellationRequest.cpp" "external/IXWebSocket/ixwebsocket/IXCancellationRequest.h" "external/IXWebSocket/ixwebsocket/IXConnectionState.cpp" "external/IXWebSocket/ixwebsocket/IXConnectionState.h" "external/IXWebSocket/ixwebsocket/IXDNSLookup.cpp" "external/IXWebSocket/ixwebsocket/IXDNSLookup.h" "external/IXWebSocket/ixwebsocket/IXExponentialBackoff.cpp" "external/IXWebSocket/ixwebsocket/IXExponentialBackoff.h" "external/IXWebSocket/ixwebsocket/IXGetFreePort.cpp" "external/IXWebSocket/ixwebsocket/IXGetFreePort.h" "external/IXWebSocket/ixwebsocket/IXGzipCodec.cpp" "external/IXWebSocket/ixwebsocket/IXGzipCodec.h" "external/IXWebSocket/ixwebsocket/IXHttp.cpp" "external/IXWebSocket/ixwebsocket/IXHttp.h" "external/IXWebSocket/ixwebsocket/IXHttpClient.cpp" "external/IXWebSocket/ixwebsocket/IXHttpClient.h" "external/IXWebSocket/ixwebsocket/IXHttpServer.cpp" "external/IXWebSocket/ixwebsocket/IXHttpServer.h" "external/IXWebSocket/ixwebsocket/IXNetSystem.cpp" "external/IXWebSocket/ixwebsocket/IXNetSystem.h" "external/IXWebSocket/ixwebsocket/IXProgressCallback.h" "external/IXWebSocket/ixwebsocket/IXSelectInterrupt.cpp" "external/IXWebSocket/ixwebsocket/IXSelectInterrupt.h" "external/IXWebSocket/ixwebsocket/IXSelectInterruptEvent.cpp" "external/IXWebSocket/ixwebsocket/IXSelectInterruptEvent.h" "external/IXWebSocket/ixwebsocket/IXSelectInterruptFactory.cpp" "external/IXWebSocket/ixwebsocket/IXSelectInterruptFactory.h" "external/IXWebSocket/ixwebsocket/IXSelectInterruptPipe.cpp" "external/IXWebSocket/ixwebsocket/IXSelectInterruptPipe.h" "external/IXWebSocket/ixwebsocket/IXSetThreadName.cpp" "external/IXWebSocket/ixwebsocket/IXSetThreadName.h" "external/IXWebSocket/ixwebsocket/IXSocket.cpp" "external/IXWebSocket/ixwebsocket/IXSocket.h" "external/IXWebSocket/ixwebsocket/IXSocketAppleSSL.cpp" "external/IXWebSocket/ixwebsocket/IXSocketAppleSSL.h" "external/IXWebSocket/ixwebsocket/IXSocketConnect.cpp" "external/IXWebSocket/ixwebsocket/IXSocketConnect.h" "external/IXWebSocket/ixwebsocket/IXSocketFactory.cpp" "external/IXWebSocket/ixwebsocket/IXSocketFactory.h" "external/IXWebSocket/ixwebsocket/IXSocketMbedTLS.cpp" "external/IXWebSocket/ixwebsocket/IXSocketMbedTLS.h" "external/IXWebSocket/ixwebsocket/IXSocketOpenSSL.cpp" "external/IXWebSocket/ixwebsocket/IXSocketOpenSSL.h" "external/IXWebSocket/ixwebsocket/IXSocketServer.cpp" "external/IXWebSocket/ixwebsocket/IXSocketServer.h" "external/IXWebSocket/ixwebsocket/IXSocketTLSOptions.cpp" "external/IXWebSocket/ixwebsocket/IXSocketTLSOptions.h" "external/IXWebSocket/ixwebsocket/IXStrCaseCompare.cpp" "external/IXWebSocket/ixwebsocket/IXStrCaseCompare.h" "external/IXWebSocket/ixwebsocket/IXUdpSocket.cpp" "external/IXWebSocket/ixwebsocket/IXUdpSocket.h" "external/IXWebSocket/ixwebsocket/IXUniquePtr.h" "external/IXWebSocket/ixwebsocket/IXUrlParser.cpp" "external/IXWebSocket/ixwebsocket/IXUrlParser.h" "external/IXWebSocket/ixwebsocket/IXUserAgent.cpp" "external/IXWebSocket/ixwebsocket/IXUserAgent.h" "external/IXWebSocket/ixwebsocket/IXUtf8Validator.h" "external/IXWebSocket/ixwebsocket/IXUuid.cpp" "external/IXWebSocket/ixwebsocket/IXUuid.h" "external/IXWebSocket/ixwebsocket/IXWebSocket.cpp" "external/IXWebSocket/ixwebsocket/IXWebSocket.h" "external/IXWebSocket/ixwebsocket/IXWebSocketCloseConstants.cpp" "external/IXWebSocket/ixwebsocket/IXWebSocketCloseConstants.h" "external/IXWebSocket/ixwebsocket/IXWebSocketCloseInfo.h" "external/IXWebSocket/ixwebsocket/IXWebSocketErrorInfo.h" "external/IXWebSocket/ixwebsocket/IXWebSocketHandshake.cpp" "external/IXWebSocket/ixwebsocket/IXWebSocketHandshake.h" "external/IXWebSocket/ixwebsocket/IXWebSocketHandshakeKeyGen.h" "external/IXWebSocket/ixwebsocket/IXWebSocketHttpHeaders.cpp" "external/IXWebSocket/ixwebsocket/IXWebSocketHttpHeaders.h" "external/IXWebSocket/ixwebsocket/IXWebSocketInitResult.h" "external/IXWebSocket/ixwebsocket/IXWebSocketMessage.h" "external/IXWebSocket/ixwebsocket/IXWebSocketMessageType.h" "external/IXWebSocket/ixwebsocket/IXWebSocketOpenInfo.h" "external/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflate.cpp" "external/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflate.h" "external/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflateCodec.cpp" "external/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflateCodec.h" "external/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflateOptions.cpp" "external/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflateOptions.h" "external/IXWebSocket/ixwebsocket/IXWebSocketProxyServer.cpp" "external/IXWebSocket/ixwebsocket/IXWebSocketProxyServer.h" "external/IXWebSocket/ixwebsocket/IXWebSocketSendData.h" "external/IXWebSocket/ixwebsocket/IXWebSocketSendInfo.h" "external/IXWebSocket/ixwebsocket/IXWebSocketServer.cpp" "external/IXWebSocket/ixwebsocket/IXWebSocketServer.h" "external/IXWebSocket/ixwebsocket/IXWebSocketTransport.cpp" "external/IXWebSocket/ixwebsocket/IXWebSocketTransport.h" "external/IXWebSocket/ixwebsocket/IXWebSocketVersion.h" "external/ModUtils/MemoryMgr.h" "external/ModUtils/Patterns.cpp" "external/ModUtils/Patterns.h" "external/imgui/backends/imgui_impl_dx9.cpp" "external/imgui/backends/imgui_impl_win32.cpp" "external/imgui/imgui.cpp" "external/imgui/imgui_demo.cpp" "external/imgui/imgui_draw.cpp" "external/imgui/imgui_tables.cpp" "external/imgui/imgui_widgets.cpp" "external/ini-cpp/ini/ini.h" "external/miniz/miniz.c" "external/miniz/miniz.h" "external/xxHash/xxhash.c" "external/xxHash/xxhash.h" "src/Proxy.cpp" "src/Proxy.def" "src/Proxy.hpp" "src/Resource.rc" "src/dllmain.cpp" "src/exception.hpp" "src/game.hpp" "src/game_addrs.hpp" "src/hook_mgr.cpp" "src/hook_mgr.hpp" "src/hooks_audio.cpp" "src/hooks_bugfixes.cpp" "src/hooks_drawdistance.cpp" "src/hooks_exceptions.cpp" "src/hooks_flac.cpp" "src/hooks_forcefeedback.cpp" "src/hooks_framerate.cpp" "src/hooks_graphics.cpp" "src/hooks_input.cpp" "src/hooks_misc.cpp" "src/hooks_textures.cpp" "src/hooks_uiscaling.cpp" "src/input_manager.cpp" "src/network.cpp" "src/overlay/chatroom.cpp" "src/overlay/course_editor.cpp" "src/overlay/hooks_overlay.cpp" "src/overlay/notifications.hpp" "src/overlay/overlay.cpp" "src/overlay/overlay.hpp" "src/overlay/server_notifications.cpp" "src/overlay/update_check.cpp" "src/plugin.hpp" "src/resource.h" ) add_library(outrun2006tweaks SHARED) target_sources(outrun2006tweaks PRIVATE ${outrun2006tweaks_SOURCES}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${outrun2006tweaks_SOURCES}) target_compile_definitions(outrun2006tweaks PUBLIC _SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR DIRECTINPUT_VERSION=0x0800 ) target_compile_features(outrun2006tweaks PUBLIC cxx_std_20 ) target_compile_options(outrun2006tweaks PUBLIC "/GS-" "/bigobj" "/EHa" "/MP" ) target_include_directories(outrun2006tweaks PUBLIC "shared/" "src/" "include/" "external/ModUtils/" "external/ini-cpp/ini/" "external/xxHash/" "external/miniz/" "external/imgui/" "external/IXWebSocket/" ) target_link_libraries(outrun2006tweaks PUBLIC spdlog safetyhook ogg FLAC jsoncpp_static version.lib xinput9_1_0.lib Hid.lib libminiupnpc-static SDL3-static Winmm.lib Setupapi.lib Crypt32.lib ) target_link_options(outrun2006tweaks PUBLIC "/DEBUG" "/OPT:REF" "/OPT:ICF" ) set_target_properties(outrun2006tweaks PROPERTIES OUTPUT_NAME dinput8 SUFFIX .dll RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin/${CMKR_TARGET}" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/bin/${CMKR_TARGET}" LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/lib/${CMKR_TARGET}" LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/lib/${CMKR_TARGET}" ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/lib/${CMKR_TARGET}" ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/lib/${CMKR_TARGET}" )