# Open Rack - Surge XT engine for the browser. GPL-3.0-or-later.
cmake_minimum_required(VERSION 3.15)
project(open-rack-surge-engine VERSION 1.3.0 LANGUAGES CXX C ASM)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_subdirectory(${SURGE_SRC} surge EXCLUDE_FROM_ALL)
add_executable(surge-engine surge_engine.cpp)
target_link_libraries(surge-engine PRIVATE surge-common)
set_target_properties(surge-engine PROPERTIES SUFFIX ".js")
target_link_options(surge-engine PRIVATE
  --no-entry -O3 -msimd128
  -sMODULARIZE=1 -sEXPORT_NAME=SurgeEngine -sENVIRONMENT=shell
  -sALLOW_MEMORY_GROWTH=1 -sINITIAL_MEMORY=134217728 -sSTACK_SIZE=1048576
  -sTEXTDECODER=0 -sFILESYSTEM=1 -sEXIT_RUNTIME=0
  -sEXPORTED_RUNTIME_METHODS=['UTF8ToString','HEAPF32','HEAPU8']
  "--embed-file=${SURGE_SRC}/resources/surge-shared/configuration.xml@/surge-data/configuration.xml"
  "--embed-file=${SURGE_SRC}/resources/surge-shared/windows.wt@/surge-data/windows.wt")
