set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) if(${RE3_AUDIO} STREQUAL "OAL") find_package(OpenAL REQUIRED) find_package(MPG123 REQUIRED) find_package(SndFile REQUIRED) endif() file(GLOB_RECURSE Sources "*.cpp" "*.h") MACRO(HEADER_DIRECTORIES return_list) FILE(GLOB_RECURSE new_list *.cpp) SET(dir_list "animation" "audio" "collision" "control" "core" "entities" "extras" "fakerw" "math" "modelinfo" "objects" "peds" "render" "rw" "save" "skel" "text" "vehicles" "weapons") FOREACH(file_path ${new_list}) GET_FILENAME_COMPONENT(dir_path ${file_path} PATH) SET(dir_list ${dir_list} ${dir_path}) ENDFOREACH() LIST(REMOVE_DUPLICATES dir_list) SET(${return_list} ${dir_list}) ENDMACRO() HEADER_DIRECTORIES(header_list) include_directories(${header_list}) add_executable(re3 ${Sources}) target_link_libraries(re3 librw) target_link_libraries(re3 Threads::Threads) if(${RE3_AUDIO} STREQUAL "OAL") target_link_libraries(re3 ${OPENAL_LIBRARY}) target_link_libraries(re3 ${MPG123_LIBRARIES}) target_link_libraries(re3 ${SNDFILE_LIBRARIES}) endif() target_include_directories(re3 INTERFACE $ ) target_compile_definitions(re3 PRIVATE "$,DEBUG,NDEBUG>" PUBLIC "RW_${RE3_PLATFORM}" ) target_compile_definitions(re3 PRIVATE LIBRW=1 AUDIO_OAL=1) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") target_compile_options(re3 PRIVATE "-Wall" ) if (NOT RE3_PLATFORM_PS2) target_compile_options(re3 PRIVATE "-Wextra" "-Wdouble-promotion" "-Wpedantic" ) endif() elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") target_compile_options(re3 PUBLIC /wd4996 /wd4244 ) endif() set_target_properties(re3 PROPERTIES C_STANDARD 11 C_EXTENSIONS OFF C_STANDARD_REQUIRED ON CXX_STANDARD 11 CXX_EXTENSIONS OFF CXX_STANDARD_REQUIRED ON PREFIX "" ) if(RE3_INSTALL) target_include_directories(re3 INTERFACE $ ) install( TARGETS re3 EXPORT re3-targets RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) endif()