|
|
@@ -78,7 +78,7 @@ endif |
|
|
|
ifeq ($(SUPERCOLLIDER), 1) |
|
|
|
SOURCES += src/SuperColliderEngine.cpp |
|
|
|
FLAGS += -Idep/supercollider/include -Idep/supercollider/include/common -Idep/supercollider/lang -Idep/supercollider/common -Idep/supercollider/include/plugin_interface |
|
|
|
FLAGS += -DNDEBUG # TODO is this OK? |
|
|
|
# FLAGS += -DNDEBUG # TODO is this OK? Andrew: No, unless you can tell me a good reason. |
|
|
|
# FLAGS += -DSC_VCV_ENGINE_TIMING # uncomment to turn on timing printing while running |
|
|
|
supercollider := dep/supercollider/build/lang/libsclang.a |
|
|
|
OBJECTS += $(supercollider) |
|
|
@@ -88,16 +88,34 @@ DISTRIBUTABLES += support/supercollider_extensions |
|
|
|
SUPERCOLLIDER_CMAKE_FLAGS += -DSUPERNOVA=OFF -DSC_EL=OFF -DSC_VIM=OFF -DSC_ED=OFF -DSC_IDE=OFF -DSC_ABLETON_LINK=OFF -DSC_QT=OFF -DCMAKE_BUILD_TYPE=Release -DSCLANG_SERVER=OFF -DBUILD_TESTING=OFF |
|
|
|
SUPERCOLLIDER_SUBMODULES += external_libraries/hidapi external_libraries/nova-simd external_libraries/nova-tt external_libraries/portaudio_sc_org external_libraries/yaml-cpp |
|
|
|
SUPERCOLLIDER_BRANCH := topic/vcv-prototype-support |
|
|
|
|
|
|
|
# FIXME should be able to find some better way of getting link library names! |
|
|
|
LDFLAGS += $$(cat dep/supercollider/build/lang/vcv_libsclang_link_line.txt) |
|
|
|
# Andrew: Just hard-code them as below, perhaps surrounded with `ifdef ARCH_*`. The "cat an external txt file" approach is unusual and not as explicit. |
|
|
|
# LDFLAGS += $$(cat dep/supercollider/build/lang/vcv_libsclang_link_line.txt) |
|
|
|
|
|
|
|
OBJECTS += dep/supercollider/build/external_libraries/libtlsf.a |
|
|
|
OBJECTS += dep/supercollider/build/external_libraries/hidapi/linux/libhidapi.a |
|
|
|
OBJECTS += dep/supercollider/build/external_libraries/hidapi/hidapi_parser/libhidapi_parser.a |
|
|
|
OBJECTS += dep/supercollider/build/external_libraries/libboost_thread_lib.a |
|
|
|
OBJECTS += dep/supercollider/build/external_libraries/libboost_system_lib.a |
|
|
|
OBJECTS += dep/supercollider/build/external_libraries/libboost_regex_lib.a |
|
|
|
OBJECTS += dep/supercollider/build/external_libraries/libboost_filesystem_lib.a |
|
|
|
OBJECTS += dep/supercollider/build/external_libraries/libyaml.a |
|
|
|
# TODO |
|
|
|
# Andrew: We can't assume anything about the users' system, so you're gonna have to either avoid using these libraries or build and statically link them. |
|
|
|
LDFLAGS += -lsndfile |
|
|
|
# However, these can be assumed because I've never seen a system without them that can run Rack. |
|
|
|
LDFLAGS += -lpthread -lasound -ludev |
|
|
|
|
|
|
|
$(supercollider): |
|
|
|
cd dep && git clone "https://github.com/supercollider/supercollider" --branch $(SUPERCOLLIDER_BRANCH) --depth 5 |
|
|
|
cd dep/supercollider && git submodule update --init -- $(SUPERCOLLIDER_SUBMODULES) |
|
|
|
cd dep/supercollider && git apply ../../support/supercollider_get_libsclang_link_line.patch |
|
|
|
cd dep/supercollider && mkdir build && cd build |
|
|
|
cd dep/supercollider/build && cmake .. -G "Unix Makefiles" $(SUPERCOLLIDER_CMAKE_FLAGS) |
|
|
|
cd dep/supercollider && mkdir build |
|
|
|
cd dep/supercollider/build && $(CMAKE) .. $(SUPERCOLLIDER_CMAKE_FLAGS) |
|
|
|
cd dep/supercollider/build && $(MAKE) libsclang |
|
|
|
cd dep/supercollider/build && $(MAKE) generate_libsclang_link_line |
|
|
|
cd dep/supercollider/build && $(MAKE) install |
|
|
|
endif |
|
|
|
|
|
|
|
# Python |
|
|
|