set(HEADERS
snes9x/65c816.h
snes9x/apu/apu.h
snes9x/apu/bapu/dsp/blargg_common.h
snes9x/apu/bapu/dsp/blargg_config.h
snes9x/apu/bapu/dsp/blargg_endian.h
snes9x/apu/bapu/dsp/sdsp.hpp
snes9x/apu/bapu/dsp/SPC_DSP.h
snes9x/apu/bapu/smp/smp.hpp
snes9x/apu/bapu/snes/snes.hpp
snes9x/apu/resampler.h
snes9x/cpuaddr.h
snes9x/cpuexec.h
snes9x/cpumacro.h
snes9x/dma.h
snes9x/getset.h
snes9x/memmap.h
snes9x/port.h
snes9x/ppu.h
snes9x/sdd1.h
snes9x/snes9x.h
XSFConfig_SNSF.h
XSFConfigDialog_SNSF.h)
set(SNES9X_SOURCES
snes9x/apu/apu.cpp
snes9x/apu/bapu/dsp/sdsp.cpp
snes9x/apu/bapu/dsp/SPC_DSP.cpp
snes9x/apu/bapu/smp/algorithms.cpp
snes9x/apu/bapu/smp/core.cpp
snes9x/apu/bapu/smp/iplrom.cpp
snes9x/apu/bapu/smp/memory.cpp
snes9x/apu/bapu/smp/smp.cpp
snes9x/apu/bapu/smp/timing.cpp
snes9x/cpu.cpp
snes9x/cpuexec.cpp
snes9x/cpuops.cpp
snes9x/dma.cpp
snes9x/globals.cpp
snes9x/memmap.cpp
snes9x/ppu.cpp
snes9x/sdd1.cpp)
set(SOURCES
${SNES9X_SOURCES}
XSFConfig_SNSF.cpp
XSFConfigDialog_SNSF.cpp
XSFPlayer_SNSF.cpp)
set(SNES9X_COMPILE_OPTIONS
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>>:-Wno-implicit-fallthrough -Wno-shift-negative-value>)
set_source_files_properties(${SNES9X_SOURCES} PROPERTIES
COMPILE_OPTIONS "${SNES9X_COMPILE_OPTIONS}")
add_library(in_snsf SHARED ${HEADERS} ${SOURCES})
set_target_properties(in_snsf PROPERTIES PREFIX "")
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX "Header Files" FILES ${HEADERS})
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} PREFIX "Source Files" FILES ${SOURCES})
target_compile_options(in_snsf PUBLIC
$<$<CXX_COMPILER_ID:MSVC>:/wd4127 /wd4245 /wd4389 /wd6385 /wd6386 /wd26439 /wd26453 /wd26495 /wd26812 /wd26819>)
target_link_libraries(in_snsf
in_xsf_framework)