add_executable(game_re r3/main.cpp r3/binders/static_mem.cxx gh_global.cxx ) target_compile_features(game_re PUBLIC cxx_std_20) target_include_directories(game_re PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) set_target_properties( game_re PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin ) if(WIN32 AND R3_32BIT) target_link_libraries(game_re PRIVATE binkw32 d3d8 dinput8 ) endif() target_compile_definitions(game_re PRIVATE R3_GAME_DATA_DIR=\"${GAME_DATA_DIR}\" ) get_filename_component(R3_DATA_SEGMENT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/gh_datasegment.bin" ABSOLUTE) target_compile_definitions(game_re PRIVATE R3_DATA_SEGMENT_FILE=\"${R3_DATA_SEGMENT_FILE}\" ) target_compile_definitions(game_re PRIVATE _CRT_SECURE_NO_WARNINGS=1 _CRT_NONSTDC_NO_WARNINGS=1) target_link_libraries(game_re PRIVATE spdlog) file(GLOB GH_AUTO_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/gh_auto/*.cxx) file(GLOB GH_FIX_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/gh_fix/*.cxx) file(GLOB GH_STUB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/gh_stub/*.cxx) target_sources(game_re PRIVATE ${GH_AUTO_SOURCES} ${GH_FIX_SOURCES} ${GH_STUB_SOURCES} ) # Ignore -Wformat-security target_compile_options(game_re PRIVATE -Wno-format-security) # Ignore -Wmicrosoft-cast target_compile_options(game_re PRIVATE -Wno-microsoft-cast) # Automatically re-run CMake if any gh_*.cxx files change # due to ghidra script runs set_property( DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/gh_cmake_timestamp ) target_precompile_headers(game_re PRIVATE "$<$:${CMAKE_CURRENT_SOURCE_DIR}/r3/binders/auto_pch.cxx>" )