cmake_minimum_required(VERSION 3.25) project(synthapp) set(CMAKE_CXX_STANDARD 20) set(BUILD_SHARED_LIBS OFF) if(MSVC) set(CMAKE_CXX_FLAGS_DEBUG "/DEBUG:FASTLINK /fp:fast") set(CMAKE_CXX_FLAGS_RELEASE "/O2 /fp:fast /DNDEBUG") else() set(CMAKE_CXX_FLAGS_DEBUG "-g -ffast-math") set(CMAKE_CXX_FLAGS_RELEASE "-Ofast -DNDEBUG") endif() if(WIN32) option(PA_USE_ASIO "" ON) option(PA_USE_WDMKS "" OFF) option(PA_USE_WDMKS_DEVICE_INFO "" OFF) endif() add_subdirectory(lib/portaudio) add_subdirectory(lib/portmidi) add_subdirectory(lib/wxWidgets) add_subdirectory(lib/synth) if(MSVC) add_compile_definitions(_USE_MATH_DEFINES) endif() add_executable(main src/synthapp.cpp src/synthframe.cpp src/ccslider.cpp) target_include_directories(main PRIVATE include) target_link_libraries(main PRIVATE synth) #target_compile_options(main PRIVATE -fsanitize=thread) #target_link_options(main PRIVATE -fsanitize=thread) target_link_libraries(main PRIVATE PortAudio) target_link_libraries(main PRIVATE portmidi) target_include_directories(main PRIVATE lib/portmidi/porttime) target_link_libraries(main PRIVATE wxbase) target_link_libraries(main PRIVATE wxcore) add_custom_target(synthapp) add_dependencies(synthapp main)