gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

CMakeLists.txt (2773B)


      1 cmake_minimum_required(VERSION 3.15)
      2 project(jucePluginLib VERSION ${CMAKE_PROJECT_VERSION}) 
      3 
      4 configure_file(${CMAKE_CURRENT_LIST_DIR}/version.h.in ${CMAKE_CURRENT_LIST_DIR}/version.h)
      5 
      6 file(TOUCH_NOCREATE ${CMAKE_CURRENT_LIST_DIR}/version.h.in)
      7 file(TOUCH_NOCREATE ${CMAKE_CURRENT_LIST_DIR}/versionDateTime.h.in)
      8 
      9 set(SOURCES
     10 	bypassBuffer.cpp bypassBuffer.h
     11 	createVersionDateTime.cmake
     12 	clipboard.cpp clipboard.h
     13 	controller.cpp controller.h
     14 	controllermap.cpp controllermap.h
     15 	dummydevice.cpp dummydevice.h
     16 	filetype.cpp filetype.h
     17 	midipacket.cpp midipacket.h
     18 	midiports.cpp midiports.h
     19 	parameter.cpp parameter.h
     20 	parameterbinding.cpp parameterbinding.h
     21 	parameterdescription.cpp parameterdescription.h
     22 	parameterdescriptions.cpp parameterdescriptions.h
     23 	parameterlink.cpp parameterlink.h
     24 	parameterlinks.cpp parameterlinks.h
     25 	parameterlistener.cpp parameterlistener.h
     26 	parameterlocking.cpp parameterlocking.h
     27 	parameterregion.cpp parameterregion.h
     28 	parametervaluelist.cpp parametervaluelist.h
     29 	pluginVersion.cpp pluginVersion.h
     30 	processor.cpp processor.h
     31 	processorPropertiesInit.h
     32 	softknob.cpp softknob.h
     33 	tools.cpp tools.h
     34 	types.h
     35 	version.h.in version.h
     36 	versionDateTime.h.in versionDateTime.h
     37 )
     38 
     39 set(SOURCES_PATCHDB
     40 	patchdb/datasource.cpp patchdb/datasource.h
     41 	patchdb/db.cpp patchdb/db.h
     42 	patchdb/jobqueue.cpp patchdb/jobqueue.h
     43 	patchdb/patch.cpp patchdb/patch.h
     44 	patchdb/patchdbtypes.cpp patchdb/patchdbtypes.h
     45 	patchdb/patchhistory.cpp patchdb/patchhistory.h
     46 	patchdb/patchmodifications.cpp patchdb/patchmodifications.h
     47 	patchdb/search.cpp patchdb/search.h
     48 	patchdb/serialization.cpp patchdb/serialization.h
     49 	patchdb/tags.cpp patchdb/tags.h
     50 )
     51 
     52 add_library(jucePluginLib STATIC)
     53 
     54 target_sources(jucePluginLib PRIVATE ${SOURCES} ${SOURCES_PATCHDB})
     55 source_group("source" FILES ${SOURCES})
     56 source_group("source\\patchdb" FILES ${SOURCES_PATCHDB})
     57 
     58 target_link_libraries(jucePluginLib PUBLIC juceUiLib synthLib bridgeClient)
     59 target_include_directories(jucePluginLib PUBLIC ../JUCE/modules)
     60 target_compile_definitions(jucePluginLib PRIVATE JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1)
     61 set_property(TARGET jucePluginLib PROPERTY FOLDER "Gearmulator")
     62 
     63 add_custom_command(
     64 	PRE_BUILD
     65 	OUTPUT ${CMAKE_CURRENT_LIST_DIR}/_doesnotexist_versionDateTime.h	# fake, causes regeneration for every build, exactly what we want
     66 	OUTPUT ${CMAKE_CURRENT_LIST_DIR}/versionDateTime.h	# valid
     67 	DEPENDS ${CMAKE_CURRENT_LIST_DIR}/versionDateTime.h.in
     68 	COMMAND ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_LIST_DIR}/createVersionDateTime.cmake"
     69 )
     70 
     71 target_include_directories(jucePluginLib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..)
     72 
     73 if(UNIX AND NOT APPLE)
     74 	set(THREADS_PREFER_PTHREAD_FLAG TRUE)
     75 	find_package(Threads REQUIRED)
     76 	target_link_libraries(jucePluginLib PRIVATE Threads::Threads)
     77 endif()