set(CMAKE_CXX_STANDARD 11) find_package(OpenMP) if(OPENMP_FOUND) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") endif() if(NOT WIN32 AND NOT ADLMIDI_DOS) set(ADLMIDI2_HAS_PUZZLE_GAME TRUE) set(ADLMIDI2_VIDEO_OUT_SUPPORT TRUE) endif() set(adlmidi2_src) list(APPEND adlmidi2_src midiplay.cc input.cc ) if(ADLMIDI2_HAS_PUZZLE_GAME) list(APPEND adlmidi2_src puzzlegame.cc) endif() add_executable(adlmidi2 ${adlmidi2_src}) target_link_libraries(adlmidi2 PRIVATE ADLMIDI) if(NOT WIN32 AND NOT ADLMIDI_DOS) find_package(SDL2 REQUIRED) string(STRIP ${SDL2_LIBRARIES} SDL2_LIBRARIES) target_include_directories(adlmidi2 PRIVATE ${SDL2_INCLUDE_DIRS}) target_link_libraries(adlmidi2 PRIVATE ${SDL2_LIBRARIES}) endif() if(ADLMIDI2_HAS_PUZZLE_GAME) target_compile_definitions(adlmidi2 PUBLIC SUPPORT_PUZZLE_GAME) endif() if(ADLMIDI2_VIDEO_OUT_SUPPORT) target_compile_definitions(adlmidi2 PUBLIC SUPPORT_VIDEO_OUTPUT) endif() if(ADLMIDI_DOS) target_compile_definitions(adlmidi2 PUBLIC HARDWARE_OPL3) message("Turn on hardware OPL3 support on ADLMIDI2 tool") endif() if(WIN32) target_link_libraries(adlmidi2 PRIVATE winmm) elseif(NOT ADLMIDI_DOS) if(NOT OPENBSD_LOCALBASE) target_link_libraries(adlmidi2 PRIVATE dl) endif() target_link_libraries(adlmidi2 PRIVATE pthread m) endif() if(NOT WITH_CPP_EXTRAS) message(FATAL_ERROR "ADLMIDI2 Requires C++ Extras. Please enable WITH_CPP_EXTRAS option!") endif() if(MSVC) message("Turned on C++11 on MSVC") target_compile_options(adlmidi2 PUBLIC "/std:c++latest") endif() if(TARGET ADLMIDI_shared AND NOT MSVC) set_target_properties(adlmidi2 PROPERTIES COMPILE_FLAGS "-Wl,-rpath='$$ORIGIN/../lib'") endif() install(TARGETS adlmidi2 RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")