Skip to content

Commit 7691d33

Browse files
committed
Build system added: cmake
1 parent 6d91105 commit 7691d33

File tree

7 files changed

+175
-0
lines changed

7 files changed

+175
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,5 @@
2929

3030
# QtCreator
3131
*.user
32+
33+
build/

CMakeLists.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
cmake_minimum_required(VERSION 3.0)
2+
project(eassynth)
3+
4+
find_package(Qt5Core REQUIRED)
5+
find_package(PkgConfig REQUIRED)
6+
7+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DQT_NO_DEBUG_OUTPUT")
8+
9+
add_subdirectory(sonivox)
10+
add_subdirectory(libsvoxeas)
11+
add_subdirectory(cmdlnsynth)
12+
add_subdirectory(guisynth)

cmdlnsynth/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
add_executable( cmdlnsynth main.cpp )
2+
3+
target_link_libraries( cmdlnsynth
4+
Qt5::Core
5+
svoxeas
6+
)
7+
8+
install( TARGETS cmdlnsynth
9+
DESTINATION bin )

guisynth/CMakeLists.txt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
2+
find_package(Qt5Widgets REQUIRED)
3+
4+
set( SOURCES
5+
main.cpp
6+
mainwindow.cpp
7+
)
8+
9+
set( HEADERS mainwindow.h )
10+
set( FORMS mainwindow.ui )
11+
set( RESOURCES guisynth.qrc )
12+
13+
qt5_wrap_cpp ( MOC_SRCS ${HEADERS} )
14+
qt5_wrap_ui ( UI_SRCS ${FORMS} )
15+
qt5_add_resources ( RES_SRCS ${RESOURCES} )
16+
17+
add_executable( guisynth
18+
${SOURCES}
19+
${MOC_SRCS}
20+
${UI_SRCS}
21+
${RES_SRCS}
22+
)
23+
24+
target_link_libraries( guisynth
25+
Qt5::Widgets
26+
svoxeas
27+
)
28+
29+
install( TARGETS guisynth
30+
DESTINATION bin )

libsvoxeas/CMakeLists.txt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
pkg_check_modules(PULSE REQUIRED libpulse-simple)
2+
pkg_check_modules(DRUMSTICK REQUIRED drumstick-alsa)
3+
4+
link_directories(
5+
${PULSE_LIBRARY_DIRS}
6+
${DRUMSTICK_LIBRARY_DIRS}
7+
)
8+
9+
set( HEADERS
10+
synthcontroller.h
11+
synthrenderer.h
12+
)
13+
14+
set( SOURCES
15+
synthcontroller.cpp
16+
synthrenderer.cpp
17+
)
18+
19+
qt5_wrap_cpp( MOC_SRCS ${HEADERS} )
20+
21+
add_library( svoxeas SHARED ${MOC_SRCS} ${SOURCES} )
22+
23+
set_target_properties( svoxeas PROPERTIES
24+
VERSION 1.0.0
25+
SOVERSION 1
26+
)
27+
28+
target_link_libraries( svoxeas
29+
sonivox
30+
Qt5::Core
31+
${PULSE_LIBRARIES}
32+
${DRUMSTICK_LIBRARIES}
33+
)
34+
35+
target_include_directories( svoxeas
36+
PUBLIC
37+
${CMAKE_CURRENT_SOURCE_DIR}
38+
PRIVATE
39+
${PULSE_INCLUDE_DIRS}
40+
${DRUMSTICK_INCLUDE_DIRS}
41+
)
42+
43+
install(
44+
TARGETS svoxeas
45+
DESTINATION lib${LIB_SUFFIX}
46+
)

libsvoxeas/libsvoxeas.pro

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ QT += core
88
QT -= gui
99
TEMPLATE = lib
1010
TARGET = svoxeas
11+
CONFIG(release): DEFINES += QT_NO_DEBUG_OUTPUT
1112

1213
DEPENDPATH += ../sonivox
1314
INCLUDEPATH += ../sonivox/host_src

sonivox/CMakeLists.txt

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
add_definitions(
2+
-DUNIFIED_DEBUG_MESSAGES
3+
-DEAS_WT_SYNTH
4+
#_IMELODY_PARSER
5+
#_RTTTL_PARSER
6+
#_OTA_PARSER
7+
#_XMF_PARSER
8+
-DNUM_OUTPUT_CHANNELS=2
9+
-D_SAMPLE_RATE_22050
10+
-DMAX_SYNTH_VOICES=64
11+
-D_8_BIT_SAMPLES
12+
-D_FILTER_ENABLED
13+
-DDLS_SYNTHESIZER
14+
-D_REVERB_ENABLED
15+
-D_CHORUS_ENABLED
16+
)
17+
18+
set( SOURCES
19+
host_src/eas_config.c
20+
host_src/eas_hostmm.c
21+
#host_src/eas_main.c
22+
host_src/eas_report.c
23+
host_src/eas_wave.c
24+
lib_src/eas_chorus.c
25+
lib_src/eas_chorusdata.c
26+
lib_src/eas_data.c
27+
lib_src/eas_dlssynth.c
28+
lib_src/eas_flog.c
29+
#lib_src/eas_ima_tables.c
30+
#lib_src/eas_imaadpcm.c
31+
#lib_src/eas_imelody.c
32+
#lib_src/eas_imelodydata.c
33+
lib_src/eas_math.c
34+
lib_src/eas_mdls.c
35+
lib_src/eas_midi.c
36+
lib_src/eas_mididata.c
37+
lib_src/eas_mixbuf.c
38+
lib_src/eas_mixer.c
39+
#lib_src/eas_ota.c
40+
#lib_src/eas_otadata.c
41+
lib_src/eas_pan.c
42+
lib_src/eas_pcm.c
43+
lib_src/eas_pcmdata.c
44+
lib_src/eas_public.c
45+
lib_src/eas_reverb.c
46+
lib_src/eas_reverbdata.c
47+
#lib_src/eas_rtttl.c
48+
#lib_src/eas_rtttldata.c
49+
lib_src/eas_smf.c
50+
lib_src/eas_smfdata.c
51+
lib_src/eas_tcdata.c
52+
lib_src/eas_tonecontrol.c
53+
lib_src/eas_voicemgt.c
54+
#lib_src/eas_wavefile.c
55+
#lib_src/eas_wavefiledata.c
56+
lib_src/eas_wtengine.c
57+
lib_src/eas_wtsynth.c
58+
#lib_src/eas_xmf.c
59+
#lib_src/eas_xmfdata.c
60+
lib_src/jet.c
61+
lib_src/wt_22khz.c
62+
)
63+
64+
add_library( sonivox STATIC ${SOURCES} )
65+
66+
target_include_directories( sonivox
67+
PUBLIC host_src
68+
PRIVATE lib_src
69+
)
70+
71+
set_target_properties( sonivox PROPERTIES
72+
POSITION_INDEPENDENT_CODE true
73+
VERSION 3.6.10
74+
)
75+

0 commit comments

Comments
 (0)