/[svn]/qsampler/trunk/CMakeLists.txt
ViewVC logotype

Annotation of /qsampler/trunk/CMakeLists.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3868 - (hide annotations) (download)
Tue Mar 30 23:31:09 2021 UTC (2 years, 11 months ago) by capela
File MIME type: text/plain
File size: 8981 byte(s)
- Report Qt version on configure/cmake build summary.
1 capela 3851 cmake_minimum_required(VERSION 3.10)
2    
3 capela 3852 project(qsampler
4 capela 3867 VERSION 0.9.3
5 capela 3852 DESCRIPTION "A LinuxSampler Qt GUI Interface"
6     LANGUAGES C CXX)
7 capela 3567
8 capela 3852 set (CONFIG_VERSION ${PROJECT_VERSION})
9 capela 3567 execute_process (
10     COMMAND git describe --tags --dirty --abbrev=6
11     OUTPUT_VARIABLE GIT_DESCRIBE_OUTPUT
12     RESULT_VARIABLE GIT_DESCRIBE_RESULT
13     OUTPUT_STRIP_TRAILING_WHITESPACE)
14     if (GIT_DESCRIBE_RESULT EQUAL 0)
15     set (VERSION "${GIT_DESCRIBE_OUTPUT}")
16 capela 3824 string (REGEX REPLACE "^[^0-9]+" "" VERSION "${VERSION}")
17 capela 3567 string (REGEX REPLACE "-g" "git." VERSION "${VERSION}")
18     string (REGEX REPLACE "[_|-]+" "." VERSION "${VERSION}")
19     execute_process (
20     COMMAND git rev-parse --abbrev-ref HEAD
21     OUTPUT_VARIABLE GIT_REVPARSE_OUTPUT
22     RESULT_VARIABLE GIT_REVPARSE_RESULT
23     OUTPUT_STRIP_TRAILING_WHITESPACE)
24     if (GIT_REVPARSE_RESULT EQUAL 0 AND NOT GIT_REVPARSE_OUTPUT STREQUAL "master")
25     set (VERSION "${VERSION} [${GIT_REVPARSE_OUTPUT}]")
26 capela 3571 endif ()
27 capela 3852 else ()
28     set (VERSION "${PROJECT_VERSION}")
29 capela 3567 endif ()
30    
31     set (PACKAGE_NAME "Qsampler")
32     set (PACKAGE_VERSION "${VERSION}")
33     set (PACKAGE_BUGREPORT "rncbc@rncbc.org")
34     set (PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
35     set (PACKAGE_TARNAME "qsampler")
36    
37 capela 3867 set (ac_version "${PROJECT_VERSION}")
38     set (ac_prefix "${CMAKE_INSTALL_PREFIX}")
39    
40 capela 3567 set (CONFIG_BUILD_VERSION "${PACKAGE_VERSION}")
41    
42     if (CMAKE_BUILD_TYPE)
43 capela 3571 set (CONFIG_BUILD_TYPE ${CMAKE_BUILD_TYPE})
44 capela 3567 else ()
45     set (CONFIG_BUILD_TYPE "release")
46     endif ()
47    
48 capela 3571 set (CONFIG_DEBUG 0)
49 capela 3567 if (CONFIG_BUILD_TYPE MATCHES "debug")
50 capela 3571 set (CONFIG_DEBUG 1)
51 capela 3567 endif ()
52 capela 3570
53 capela 3567 set (CONFIG_PREFIX "${CMAKE_INSTALL_PREFIX}")
54    
55 capela 3570 include (GNUInstallDirs)
56     set (CONFIG_BINDIR "${CONFIG_PREFIX}/${CMAKE_INSTALL_BINDIR}")
57     set (CONFIG_LIBDIR "${CONFIG_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
58     set (CONFIG_DATADIR "${CONFIG_PREFIX}/${CMAKE_INSTALL_DATADIR}")
59     set (CONFIG_MANDIR "${CONFIG_PREFIX}/${CMAKE_INSTALL_MANDIR}")
60 capela 3567
61 capela 3570
62 capela 3567 # Enable libgig availability.
63     option (CONFIG_LIBGIG "Enable libgig interface (default=yes)" 1)
64    
65     # Enable unique/single instance.
66     option (CONFIG_XUNIQUE "Enable unique/single instance (default=yes)" 1)
67    
68     # Enable debugger stack-trace option (assumes --enable-debug).
69     option (CONFIG_STACKTRACE "Enable debugger stack-trace (default=no)" 0)
70    
71 capela 3571
72 capela 3567 # Fix for new CMAKE_REQUIRED_LIBRARIES policy.
73     if (POLICY CMP0075)
74     cmake_policy (SET CMP0075 NEW)
75     endif ()
76    
77 capela 3868 # Check for Qt...
78     find_package (Qt6 QUIET)
79     if (Qt6_FOUND)
80     find_package (QT QUIET NAMES Qt6)
81     else ()
82     find_package (QT QUIET NAMES Qt5)
83     endif ()
84    
85 capela 3841 find_package (Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui Widgets)
86 capela 3569
87     if (CONFIG_XUNIQUE)
88 capela 3841 find_package (Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Network)
89 capela 3569 endif ()
90    
91 capela 3841 find_package (Qt${QT_VERSION_MAJOR}LinguistTools)
92 capela 3567
93     include (CheckIncludeFile)
94     include (CheckIncludeFiles)
95     include (CheckIncludeFileCXX)
96     include (CheckFunctionExists)
97     include (CheckLibraryExists)
98    
99     # Checks for libraries.
100     if (WIN32)
101     check_function_exists (lroundf CONFIG_ROUND)
102     else ()
103     find_library (MATH_LIBRARY m)
104     # Check for round math function.
105     if (MATH_LIBRARY)
106     set (CMAKE_REQUIRED_LIBRARIES "${MATH_LIBRARY};${CMAKE_REQUIRED_LIBRARIES}")
107     check_function_exists (lroundf CONFIG_ROUND)
108     else ()
109     message (FATAL_ERROR "*** math library not found.")
110     endif ()
111     endif ()
112    
113     # Checks for header files.
114     if (UNIX AND NOT APPLE)
115     check_include_files ("fcntl.h;unistd.h;signal.h" HAVE_SIGNAL_H)
116     endif ()
117    
118    
119     # Find package modules
120     find_package (PkgConfig REQUIRED)
121    
122     # Check for LSCP libraries.
123 capela 3851 pkg_check_modules (LSCP REQUIRED IMPORTED_TARGET lscp)
124 capela 3641 if (LSCP_FOUND)
125     set (CONFIG_LIBLSCP 1)
126 capela 3567 include_directories (${LSCP_INCLUDE_DIRS})
127     link_directories (${LSCP_LIBRARY_DIRS})
128 capela 3571 # link_libraries (${LSCP_LIBRARIES})
129 capela 3567 set (CMAKE_REQUIRED_LIBRARIES "${LSCP_LIBRARIES};${CMAKE_REQUIRED_LIBRARIES}")
130     # Check for for instrument_name in lscp_channel_info_t.
131 capela 3640 check_include_file (lscp/client.h HAVE_LSCP_CLIENT_H)
132     if (NOT HAVE_LSCP_CLIENT_H)
133     set (CONFIG_INSTRUMENT_NAME 0)
134     else ()
135     set (CONFIG_INSTRUMENT_NAME 1)
136     endif ()
137 capela 3567 # Check for mute/solo in lscp_channel_info_t.
138 capela 3640 if (NOT HAVE_LSCP_CLIENT_H)
139     set (CONFIG_MUTE_SOLO 0)
140     else ()
141     set (CONFIG_MUTE_SOLO 1)
142     endif ()
143 capela 3567 if (CONFIG_MUTE_SOLO)
144     check_function_exists (lscp_set_channel_mute CONFIG_MUTE_SOLO)
145     endif ()
146     if (CONFIG_MUTE_SOLO)
147     check_function_exists (lscp_set_channel_solo CONFIG_MUTE_SOLO)
148     endif ()
149     # Check if MIDI instrument mapping is available.
150     check_function_exists (lscp_map_midi_instrument CONFIG_MIDI_INSTRUMENT)
151     # Check if FX sends is available.
152     check_function_exists (lscp_create_fxsend CONFIG_FXSEND)
153     # Check for FX send level in lscp_fxsend_info_t
154     if (CONFIG_FXSEND)
155 capela 3640 if (NOT HAVE_LSCP_CLIENT_H)
156     set (CONFIG_FXSEND_LEVEL 0)
157     else ()
158     set (CONFIG_FXSEND_LEVEL 1)
159     endif ()
160 capela 3567 endif ()
161     # Check if FX send rename is available.
162     if (CONFIG_FXSEND)
163     check_function_exists (lscp_set_fxsend_name CONFIG_FXSEND_RENAME)
164     endif ()
165     # Check for audio_routing array type
166 capela 3640 if (NOT HAVE_LSCP_CLIENT_H)
167     set (CONFIG_AUDIO_ROUTING 0)
168     else ()
169     set (CONFIG_AUDIO_ROUTING 1)
170     endif ()
171 capela 3567 # Check if global volume is available.
172     check_function_exists (lscp_set_volume CONFIG_VOLUME)
173     # Check if instrument editing is available.
174     check_function_exists (lscp_edit_channel_instrument CONFIG_EDIT_INSTRUMENT)
175     # Check for CHANNEL_MIDI LSCP event support in liblscp],
176 capela 3640 check_include_file (lscp/event.h HAVE_LSCP_EVENT_H)
177     if (NOT HAVE_LSCP_EVENT_H)
178     set (CONFIG_EVENT_CHANNEL_MIDI 0)
179     else ()
180     set (CONFIG_EVENT_CHANNEL_MIDI 1)
181     endif ()
182 capela 3567 # Check for DEVICE_MIDI LSCP event support in liblscp],
183 capela 3640 if (NOT HAVE_LSCP_EVENT_H)
184     set (CONFIG_EVENT_DEVICE_MIDI 0)
185     else ()
186     set (CONFIG_EVENT_DEVICE_MIDI 1)
187     endif ()
188 capela 3567 # Check if max. voices / streams is available.
189     check_function_exists (lscp_get_voices CONFIG_MAX_VOICES)
190     else ()
191     message (FATAL_ERROR "*** LSCP library not found.")
192 capela 3641 set (CONFIG_LIBLSCP 0)
193 capela 3567 endif ()
194    
195     # Check for GIG libraries.
196     if (CONFIG_LIBGIG)
197 capela 3851 pkg_check_modules (GIG IMPORTED_TARGET gig>=3.3.0)
198 capela 3641 if (GIG_FOUND)
199 capela 3567 include_directories (${GIG_INCLUDE_DIRS})
200     link_directories (${GIG_LIBRARY_DIRS})
201     link_libraries (${GIG_LIBRARIES})
202     # set (CMAKE_REQUIRED_LIBRARIES "${GIG_LIBRARIES};${CMAKE_REQUIRED_LIBRARIES}")
203     # liggig supports fast information retrieval.
204     set (CONFIG_LIBGIG_SETAUTOLOAD 1)
205     # Check if libgig/SF.h is available.
206 capela 3640 check_include_file_cxx (libgig/SF.h HAVE_LIBGIG_SF_H)
207     if (NOT HAVE_LIBGIG_SF_H)
208     set (CONFIG_LIBGIG_SF2 0)
209     else ()
210     set (CONFIG_LIBGIG_SF2 1)
211     endif ()
212 capela 3567 else ()
213     message (WARNING "*** GIG library not found.")
214 capela 3641 set (CONFIG_LIBGIG 0)
215 capela 3567 endif ()
216     endif ()
217    
218    
219     add_subdirectory (src)
220    
221     configure_file (qsampler.spec.in qsampler.spec IMMEDIATE @ONLY)
222    
223     install (FILES qsampler.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
224     install (FILES qsampler.fr.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/fr/man1 RENAME qsampler.1)
225    
226     # Configuration status
227     macro (SHOW_OPTION text value)
228     if (${value})
229 capela 3571 message ("${text}: yes")
230 capela 3567 else ()
231 capela 3571 message ("${text}: no")
232 capela 3567 endif ()
233     endmacro ()
234    
235 capela 3569
236 capela 3868 message ("\n ${PACKAGE_NAME} ${PACKAGE_VERSION} (Qt ${QT_VERSION})")
237 capela 3569 message ("\n Build target . . . . . . . . . . . . . . . . . . .: ${CONFIG_BUILD_TYPE}\n")
238 capela 3567 show_option (" LSCP instrument name support . . . . . . . . . . ." CONFIG_INSTRUMENT_NAME)
239     show_option (" LSCP mute/solo support . . . . . . . . . . . . . ." CONFIG_MUTE_SOLO)
240     show_option (" LSCP MIDI instrument support . . . . . . . . . . ." CONFIG_MIDI_INSTRUMENT)
241     show_option (" LSCP FX send support . . . . . . . . . . . . . . ." CONFIG_FXSEND)
242     show_option (" LSCP FX send level support . . . . . . . . . . . ." CONFIG_FXSEND_LEVEL)
243     show_option (" LSCP FX send rename support . . . . . . . . . . ." CONFIG_FXSEND_RENAME)
244     show_option (" LSCP audio routing support . . . . . . . . . . . ." CONFIG_AUDIO_ROUTING)
245     show_option (" LSCP volume support . . . . . . . . . . . . . . ." CONFIG_VOLUME)
246     show_option (" LSCP edit instrument support . . . . . . . . . . ." CONFIG_EDIT_INSTRUMENT)
247     show_option (" GigaSampler instrument file support (libgig) . . ." CONFIG_LIBGIG)
248     if (CONFIG_LIBGIG)
249     show_option (" libgig supports fast information retrieval . . . ." CONFIG_LIBGIG_SETAUTOLOAD)
250     show_option (" libgig supports SoundFont2 instruments files . . ." CONFIG_LIBGIG_SF2)
251     endif ()
252     show_option (" LSCP channel MIDI event support . . . . . . . . ." CONFIG_EVENT_CHANNEL_MIDI)
253     show_option (" LSCP device MIDI event support . . . . . . . . . ." CONFIG_EVENT_DEVICE_MIDI)
254     show_option (" LSCP runtime max. voices / disk streams support ." CONFIG_MAX_VOICES)
255 capela 3569 message ("")
256 capela 3567 show_option (" Unique/Single instance support . . . . . . . . . ." CONFIG_XUNIQUE)
257     show_option (" Debugger stack-trace (gdb) . . . . . . . . . . . ." CONFIG_STACKTRACE)
258 capela 3569 message ("\n Install prefix . . . . . . . . . . . . . . . . . .: ${CMAKE_INSTALL_PREFIX}")
259     message ("\nNow type 'make', followed by 'make install' as root.\n")

  ViewVC Help
Powered by ViewVC