zmusic/thirdparty/oplsynth/CMakeLists.txt
Braden Obrzut b3c4b55dab Overhaul CMakeLists to conform with modern CMake
- Prefer target properties instead of setting variables whenever possible.
  A zmusic-obj target now exists to represent the commonality between zmusic
  and zmusiclite.
- Factored out as much as possible from global settings to per target settings
  which will make it easier to support using ZMusic as a submodule. Moved
  helper functions into a ZUtility.cmake module.
- We now generate and install ZMusicConfig.cmake so find_package(ZMusic)
  will work either automatically or given ZMusic_DIR is set.
- CPack is enabled although some refinement is still needed.
- Requires CMake >= 3.13 which is newer than I would normally like, but given
  how no one like to refactor these things it may be better to deal with the
  short term pain of going a little aggressive on the requirement in order to
  avoid having to make things ugly. Especially given that these scripts have
  a tendency to be copy/pasted into sister projects. CMake itself has very few
  dependencies so users of old Linux distros should be able to easily compile
  a supported version of CMake.
- On Windows CMake >= 3.15 is required for redistributable results.
- Cleaned out bits that were copied from GZDoom but not relevant to ZMusic.
2021-02-16 01:38:10 -05:00

31 lines
645 B
CMake

add_library(oplsynth OBJECT
fmopl.cpp
musicblock.cpp
nukedopl3.cpp
opl_mus_player.cpp
OPL3.cpp
oplio.cpp
dosbox/opl.cpp
)
file(GLOB HEADER_FILES oplsynth/*.h)
target_sources(oplsynth PRIVATE ${HEADER_FILES})
target_include_directories(oplsynth INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE oplsynth)
set_target_properties(oplsynth
PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED ON
)
use_fast_math(oplsynth)
require_stricmp(oplsynth PRIVATE)
require_strnicmp(oplsynth PRIVATE)
if(COMPILER_IS_GNUC_COMPATIBLE)
target_compile_options(oplsynth
PRIVATE
"-Wall" "-Wextra" "-Wno-unused-parameter" "-fomit-frame-pointer"
)
endif()