2012-02-22 14:47:52 +01:00
|
|
|
#CMake file for DrMr
|
|
|
|
|
|
|
|
cmake_minimum_required(VERSION 2.6)
|
|
|
|
project (DrMr)
|
|
|
|
|
|
|
|
set(LV2_INSTALL_DIR lib/lv2 CACHE PATH "Specifies where the LV2 libraries should be installed")
|
|
|
|
set(CMAKE_C_FLAGS "-Wall")
|
|
|
|
|
2012-02-22 17:13:08 +01:00
|
|
|
# Availble options
|
|
|
|
option(USE_NKNOB "Use custom NKnob widgets for gain/pan instead of Gtk sliders" ON)
|
2012-03-16 14:20:24 +01:00
|
|
|
SET(SAMP_ZERO_POS "0" CACHE STRING "Default sample zero position 0=top left (tl) 1=bl 2=tr 3=br")
|
2012-02-22 17:13:08 +01:00
|
|
|
|
2012-02-22 14:47:52 +01:00
|
|
|
# check for our various libraries
|
|
|
|
find_package(PkgConfig)
|
2012-03-25 18:17:24 +02:00
|
|
|
pkg_check_modules(LV2 REQUIRED lv2core>=6.0)
|
|
|
|
pkg_check_modules(LV2EVENT REQUIRED lv2-lv2plug.in-ns-ext-event>=1.4)
|
|
|
|
pkg_check_modules(LV2UI REQUIRED lv2-lv2plug.in-ns-extensions-ui>=2.4)
|
2012-03-25 18:25:10 +02:00
|
|
|
pkg_check_modules(LV2URID REQUIRED lv2-lv2plug.in-ns-ext-urid>=1.0)
|
|
|
|
pkg_check_modules(LV2ATOM REQUIRED lv2-lv2plug.in-ns-ext-atom>=0.6)
|
|
|
|
pkg_check_modules(LV2STATE REQUIRED lv2-lv2plug.in-ns-ext-state>=0.6)
|
2012-02-22 14:47:52 +01:00
|
|
|
pkg_check_modules(SNDFILE REQUIRED sndfile>=1.0.20)
|
2012-03-16 14:22:43 +01:00
|
|
|
pkg_check_modules(SAMPLERATE REQUIRED samplerate>=0.1.5)
|
2012-02-22 14:47:52 +01:00
|
|
|
pkg_check_modules (GTK2 REQUIRED gtk+-2.0>=2.22.0)
|
|
|
|
find_package (EXPAT REQUIRED)
|
|
|
|
|
2012-03-25 18:25:10 +02:00
|
|
|
include_directories (${LV2_INCLUDE_DIRS} ${LV2EVENT_INCLUDE_DIRS} ${LV2UI_INCLUDE_DIRS} ${LV2URID_INCLUDE_DIRS} ${LV2ATOM_INCLUDE_DIRS} ${LV2STATE_INCLUDE_DIRS} ${EXPAT_INCLUDE_DIRS} ${SNDFILE_INCLUDE_DIRS} ${SAMPLERATE_INCLUDE_DIRS} ${GTK2_INCLUDE_DIRS})
|
|
|
|
link_directories (${LV2_LIBRARY_DIRS} ${LV2EVENT_LIBRARY_DIRS} ${LV2UI_LIBRARY_DIRS} ${LV2URID_LIBRARY_DIRS} ${LV2ATOM_LIBRARY_DIRS} ${LV2STATE_LIBRARY_DIRS} ${EXPAT_LIBRARY_DIRS} ${SNDFILE_LIBRARY_DIRS} ${SAMPLERATE_LIBRARY_DIRS} ${GTK2_LIBRARY_DIRS})
|
2012-02-22 14:47:52 +01:00
|
|
|
|
|
|
|
# config libraries
|
|
|
|
|
|
|
|
add_library(drmr SHARED
|
|
|
|
drmr.c
|
|
|
|
drmr_hydrogen.c
|
|
|
|
drmr.h
|
|
|
|
drmr_hydrogen.h
|
|
|
|
)
|
|
|
|
|
|
|
|
add_library(drmr_ui SHARED
|
|
|
|
drmr_ui.c
|
|
|
|
drmr_hydrogen.c
|
|
|
|
nknob.c
|
|
|
|
drmr_hydrogen.h
|
|
|
|
nknob.h
|
|
|
|
)
|
2012-02-22 17:13:08 +01:00
|
|
|
|
2012-02-22 14:47:52 +01:00
|
|
|
set_target_properties(drmr PROPERTIES PREFIX "")
|
|
|
|
set_target_properties(drmr_ui PROPERTIES PREFIX "")
|
2012-02-23 13:11:20 +01:00
|
|
|
set_target_properties(drmr_ui
|
|
|
|
PROPERTIES
|
|
|
|
LINK_FLAGS "-Wl,-znodelete"
|
|
|
|
)
|
2012-02-22 14:47:52 +01:00
|
|
|
|
|
|
|
target_link_libraries(drmr ${LV2_LIBRARIES} ${SNDFILE_LIBRARIES} ${SAMPLERATE_LIBRARIES} ${EXPAT_LIBRARIES} m)
|
|
|
|
target_link_libraries(drmr_ui ${LV2_LIBRARIES} ${GTK2_LIBRARIES} ${SNDFILE_LIBRARIES} ${SAMPLERATE_LIBRARIES} ${EXPAT_LIBRARIES} m)
|
|
|
|
|
2012-02-22 17:35:37 +01:00
|
|
|
|
2012-02-22 14:47:52 +01:00
|
|
|
add_definitions ( -DPIC )
|
|
|
|
|
2012-03-22 14:15:00 +01:00
|
|
|
set_target_properties (drmr
|
|
|
|
PROPERTIES
|
|
|
|
COMPILE_FLAGS "-std=gnu99"
|
|
|
|
)
|
|
|
|
|
|
|
|
set (ui_compile_flags "-std=gnu99")
|
|
|
|
|
2012-02-22 17:13:08 +01:00
|
|
|
if (NOT USE_NKNOB)
|
2012-03-22 14:15:00 +01:00
|
|
|
set (ui_compile_flags "${ui_compile_flags} -DNO_NKNOB")
|
2012-02-22 17:13:08 +01:00
|
|
|
endif (NOT USE_NKNOB)
|
2012-02-22 14:47:52 +01:00
|
|
|
|
2012-03-16 14:20:24 +01:00
|
|
|
if (SAMP_ZERO_POS GREATER "-1" AND SAMP_ZERO_POS LESS "4")
|
|
|
|
set (ui_compile_flags "${ui_compile_flags} -DDRMR_UI_ZERO_SAMP=${SAMP_ZERO_POS}")
|
|
|
|
else (SAMP_ZERO_POS GREATER "-1" AND SAMP_ZERO_POS LESS "4")
|
|
|
|
message(WARNING "Invalid SAMP_ZERO_POS, defaulting to 0 \(top left\). Valid values are 0,1,2,3")
|
|
|
|
set (ui_compile_flags "${ui_compile_flags} -DDRMR_UI_ZERO_SAMP=0")
|
|
|
|
endif (SAMP_ZERO_POS GREATER "-1" AND SAMP_ZERO_POS LESS "4")
|
|
|
|
|
|
|
|
set_target_properties (drmr_ui
|
|
|
|
PROPERTIES
|
|
|
|
COMPILE_FLAGS ${ui_compile_flags}
|
|
|
|
)
|
|
|
|
|
2012-02-22 17:35:37 +01:00
|
|
|
# Custom test commands
|
|
|
|
add_executable ( htest
|
|
|
|
EXCLUDE_FROM_ALL
|
|
|
|
drmr_hydrogen.c
|
|
|
|
)
|
|
|
|
|
|
|
|
add_executable ( knobt
|
|
|
|
EXCLUDE_FROM_ALL
|
|
|
|
nknob.c
|
|
|
|
)
|
|
|
|
|
|
|
|
# config test executables
|
|
|
|
target_link_libraries(htest ${LV2_LIBRARIES} ${GTK2_LIBRARIES} ${SNDFILE_LIBRARIES} ${SAMPLERATE_LIBRARIES} ${EXPAT_LIBRARIES} m)
|
|
|
|
set_target_properties ( htest
|
|
|
|
PROPERTIES
|
|
|
|
COMPILE_FLAGS "-D_TEST_HYDROGEN_PARSER"
|
|
|
|
)
|
|
|
|
target_link_libraries(knobt ${LV2_LIBRARIES} ${GTK2_LIBRARIES} ${SNDFILE_LIBRARIES} ${SAMPLERATE_LIBRARIES} ${EXPAT_LIBRARIES} m)
|
|
|
|
set_target_properties ( knobt
|
|
|
|
PROPERTIES
|
2012-02-23 14:12:03 +01:00
|
|
|
COMPILE_FLAGS "-D_TEST_N_KNOB"
|
2012-02-22 17:35:37 +01:00
|
|
|
)
|
|
|
|
|
2012-02-22 14:47:52 +01:00
|
|
|
# config install
|
|
|
|
install(TARGETS drmr drmr_ui
|
|
|
|
LIBRARY
|
|
|
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/${LV2_INSTALL_DIR}/drmr.lv2
|
|
|
|
)
|
|
|
|
|
2012-03-27 16:02:11 +02:00
|
|
|
install (FILES manifest.ttl drmr.ttl knob.png led_on.png led_off.png
|
2012-02-22 14:47:52 +01:00
|
|
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/${LV2_INSTALL_DIR}/drmr.lv2
|
|
|
|
)
|