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

Diff of /qsampler/trunk/CMakeLists.txt

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3589 by capela, Sun Sep 1 20:01:03 2019 UTC revision 3871 by capela, Mon Apr 12 14:05:07 2021 UTC
# Line 1  Line 1 
1  project(QSAMPLER)  cmake_minimum_required(VERSION 3.10)
2    
3  cmake_minimum_required(VERSION 3.1)  project(qsampler
4      VERSION 0.9.3
5      DESCRIPTION "A LinuxSampler Qt GUI Interface"
6      LANGUAGES C CXX)
7    
8  set (VERSION "0.5.7")  set (CONFIG_VERSION ${PROJECT_VERSION})
   
 set (CONFIG_VERSION ${VERSION})  
9  execute_process (  execute_process (
10    COMMAND git describe --tags --dirty --abbrev=6    COMMAND git describe --tags --dirty --abbrev=6
11      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
12    OUTPUT_VARIABLE GIT_DESCRIBE_OUTPUT    OUTPUT_VARIABLE GIT_DESCRIBE_OUTPUT
13    RESULT_VARIABLE GIT_DESCRIBE_RESULT    RESULT_VARIABLE GIT_DESCRIBE_RESULT
14    OUTPUT_STRIP_TRAILING_WHITESPACE)    OUTPUT_STRIP_TRAILING_WHITESPACE)
15  if (GIT_DESCRIBE_RESULT EQUAL 0)  if (GIT_DESCRIBE_RESULT EQUAL 0)
16    set (VERSION "${GIT_DESCRIBE_OUTPUT}")    set (VERSION "${GIT_DESCRIBE_OUTPUT}")
17    string (REGEX REPLACE "^[^_]+"   "" VERSION "${VERSION}")    string (REGEX REPLACE "^[^0-9]+" "" VERSION "${VERSION}")
   string (REGEX REPLACE "^[_vV]+"  "" VERSION "${VERSION}")  
18    string (REGEX REPLACE "-g"   "git." VERSION "${VERSION}")    string (REGEX REPLACE "-g"   "git." VERSION "${VERSION}")
19    string (REGEX REPLACE "[_|-]+"  "." VERSION "${VERSION}")    string (REGEX REPLACE "[_|-]+"  "." VERSION "${VERSION}")
20    execute_process (    execute_process (
21      COMMAND git rev-parse --abbrev-ref HEAD      COMMAND git rev-parse --abbrev-ref HEAD
22        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
23      OUTPUT_VARIABLE GIT_REVPARSE_OUTPUT      OUTPUT_VARIABLE GIT_REVPARSE_OUTPUT
24      RESULT_VARIABLE GIT_REVPARSE_RESULT      RESULT_VARIABLE GIT_REVPARSE_RESULT
25      OUTPUT_STRIP_TRAILING_WHITESPACE)      OUTPUT_STRIP_TRAILING_WHITESPACE)
26    if (GIT_REVPARSE_RESULT EQUAL 0 AND NOT GIT_REVPARSE_OUTPUT STREQUAL "master")    if (GIT_REVPARSE_RESULT EQUAL 0 AND NOT GIT_REVPARSE_OUTPUT STREQUAL "master")
27      set (VERSION "${VERSION} [${GIT_REVPARSE_OUTPUT}]")      set (VERSION "${VERSION} [${GIT_REVPARSE_OUTPUT}]")
28    endif ()    endif ()
29    else ()
30      set (VERSION "${PROJECT_VERSION}")
31  endif ()  endif ()
32    
33  set (PACKAGE_NAME "Qsampler")  set (PACKAGE_NAME "Qsampler")
# Line 32  set (PACKAGE_BUGREPORT "rncbc@rncbc.org" Line 36  set (PACKAGE_BUGREPORT "rncbc@rncbc.org"
36  set (PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")  set (PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
37  set (PACKAGE_TARNAME "qsampler")  set (PACKAGE_TARNAME "qsampler")
38    
39    set (ac_version "${PROJECT_VERSION}")
40    set (ac_prefix "${CMAKE_INSTALL_PREFIX}")
41    
42  set (CONFIG_BUILD_VERSION "${PACKAGE_VERSION}")  set (CONFIG_BUILD_VERSION "${PACKAGE_VERSION}")
43    
44  if (CMAKE_BUILD_TYPE)  if (CMAKE_BUILD_TYPE)
# Line 64  option (CONFIG_XUNIQUE "Enable unique/si Line 71  option (CONFIG_XUNIQUE "Enable unique/si
71  option (CONFIG_STACKTRACE "Enable debugger stack-trace (default=no)" 0)  option (CONFIG_STACKTRACE "Enable debugger stack-trace (default=no)" 0)
72    
73    
74    # Enable Qt6 build preference.
75    option (CONFIG_QT6 "Enable Qt6 build (default=no)" 0)
76    
77    
78  # Fix for new CMAKE_REQUIRED_LIBRARIES policy.  # Fix for new CMAKE_REQUIRED_LIBRARIES policy.
79  if (POLICY CMP0075)  if (POLICY CMP0075)
80    cmake_policy (SET CMP0075 NEW)    cmake_policy (SET CMP0075 NEW)
81  endif ()  endif ()
82    
83  # Check for Qt  # Check for Qt...
84  find_package (Qt5 REQUIRED COMPONENTS Core Gui Widgets)  if (CONFIG_QT6)
85      find_package (Qt6 QUIET)
86      if (NOT Qt6_FOUND)
87        set (CONFIG_QT6 0)
88      endif ()
89    endif ()
90    
91    if (CONFIG_QT6)
92      find_package (QT QUIET NAMES Qt6)
93    else ()
94      find_package (QT QUIET NAMES Qt5)
95    endif ()
96    
97    find_package (Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui Widgets)
98    
99  if (CONFIG_XUNIQUE)  if (CONFIG_XUNIQUE)
100    find_package (Qt5 REQUIRED COMPONENTS Network)    find_package (Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Network)
101  endif ()  endif ()
102    
103  find_package (Qt5LinguistTools)  find_package (Qt${QT_VERSION_MAJOR}LinguistTools)
104    
105  include (CheckIncludeFile)  include (CheckIncludeFile)
106  include (CheckIncludeFiles)  include (CheckIncludeFiles)
# Line 108  endif () Line 132  endif ()
132  find_package (PkgConfig REQUIRED)  find_package (PkgConfig REQUIRED)
133    
134  # Check for LSCP libraries.  # Check for LSCP libraries.
135  pkg_check_modules (LSCP REQUIRED lscp)  pkg_check_modules (LSCP REQUIRED IMPORTED_TARGET lscp)
136  set (CONFIG_LIBLSCP ${LSCP_FOUND})  if (LSCP_FOUND)
137  if (CONFIG_LIBLSCP)    set (CONFIG_LIBLSCP 1)
138    include_directories (${LSCP_INCLUDE_DIRS})    include_directories (${LSCP_INCLUDE_DIRS})
139    link_directories (${LSCP_LIBRARY_DIRS})    link_directories (${LSCP_LIBRARY_DIRS})
140  # link_libraries (${LSCP_LIBRARIES})  # link_libraries (${LSCP_LIBRARIES})
141    set (CMAKE_REQUIRED_LIBRARIES "${LSCP_LIBRARIES};${CMAKE_REQUIRED_LIBRARIES}")    set (CMAKE_REQUIRED_LIBRARIES "${LSCP_LIBRARIES};${CMAKE_REQUIRED_LIBRARIES}")
142    # Check for for instrument_name in lscp_channel_info_t.    # Check for for instrument_name in lscp_channel_info_t.
143    check_include_file (lscp/client.h CONFIG_INSTRUMENT_NAME)    check_include_file (lscp/client.h HAVE_LSCP_CLIENT_H)
144      if (NOT HAVE_LSCP_CLIENT_H)
145        set (CONFIG_INSTRUMENT_NAME 0)
146      else ()
147        set (CONFIG_INSTRUMENT_NAME 1)    
148      endif ()
149    # Check for mute/solo in lscp_channel_info_t.    # Check for mute/solo in lscp_channel_info_t.
150    check_include_file (lscp/client.h CONFIG_MUTE_SOLO)    if (NOT HAVE_LSCP_CLIENT_H)
151        set (CONFIG_MUTE_SOLO 0)
152      else ()
153        set (CONFIG_MUTE_SOLO 1)    
154      endif ()
155    if (CONFIG_MUTE_SOLO)    if (CONFIG_MUTE_SOLO)
156      check_function_exists (lscp_set_channel_mute CONFIG_MUTE_SOLO)      check_function_exists (lscp_set_channel_mute CONFIG_MUTE_SOLO)
157    endif ()    endif ()
# Line 131  if (CONFIG_LIBLSCP) Line 164  if (CONFIG_LIBLSCP)
164    check_function_exists (lscp_create_fxsend CONFIG_FXSEND)    check_function_exists (lscp_create_fxsend CONFIG_FXSEND)
165    # Check for FX send level in lscp_fxsend_info_t    # Check for FX send level in lscp_fxsend_info_t
166    if (CONFIG_FXSEND)    if (CONFIG_FXSEND)
167      check_include_file (lscp/client.h CONFIG_FXSEND_LEVEL)      if (NOT HAVE_LSCP_CLIENT_H)
168          set (CONFIG_FXSEND_LEVEL 0)
169        else ()
170          set (CONFIG_FXSEND_LEVEL 1)    
171        endif ()
172    endif ()    endif ()
173    # Check if FX send rename is available.    # Check if FX send rename is available.
174    if (CONFIG_FXSEND)    if (CONFIG_FXSEND)
175      check_function_exists (lscp_set_fxsend_name CONFIG_FXSEND_RENAME)      check_function_exists (lscp_set_fxsend_name CONFIG_FXSEND_RENAME)
176    endif ()    endif ()
177    # Check for audio_routing array type    # Check for audio_routing array type
178    check_include_file (lscp/client.h CONFIG_AUDIO_ROUTING)    if (NOT HAVE_LSCP_CLIENT_H)
179        set (CONFIG_AUDIO_ROUTING 0)
180      else ()
181        set (CONFIG_AUDIO_ROUTING 1)    
182      endif ()
183    # Check if global volume is available.    # Check if global volume is available.
184    check_function_exists (lscp_set_volume CONFIG_VOLUME)    check_function_exists (lscp_set_volume CONFIG_VOLUME)
185    # Check if instrument editing is available.    # Check if instrument editing is available.
186    check_function_exists (lscp_edit_channel_instrument CONFIG_EDIT_INSTRUMENT)    check_function_exists (lscp_edit_channel_instrument CONFIG_EDIT_INSTRUMENT)
187    # Check for CHANNEL_MIDI LSCP event support in liblscp],    # Check for CHANNEL_MIDI LSCP event support in liblscp],
188    check_include_file (lscp/event.h CONFIG_EVENT_CHANNEL_MIDI)    check_include_file (lscp/event.h HAVE_LSCP_EVENT_H)
189      if (NOT HAVE_LSCP_EVENT_H)
190        set (CONFIG_EVENT_CHANNEL_MIDI 0)
191      else ()
192        set (CONFIG_EVENT_CHANNEL_MIDI 1)    
193      endif ()
194    # Check for DEVICE_MIDI LSCP event support in liblscp],    # Check for DEVICE_MIDI LSCP event support in liblscp],
195    check_include_file (lscp/event.h CONFIG_EVENT_DEVICE_MIDI)    if (NOT HAVE_LSCP_EVENT_H)
196        set (CONFIG_EVENT_DEVICE_MIDI 0)
197      else ()
198        set (CONFIG_EVENT_DEVICE_MIDI 1)    
199      endif ()
200    # Check if max. voices / streams is available.    # Check if max. voices / streams is available.
201    check_function_exists (lscp_get_voices CONFIG_MAX_VOICES)    check_function_exists (lscp_get_voices CONFIG_MAX_VOICES)
202  else ()  else ()
203    message (FATAL_ERROR "*** LSCP library not found.")    message (FATAL_ERROR "*** LSCP library not found.")
204      set (CONFIG_LIBLSCP 0)
205  endif ()  endif ()
206    
207  # Check for GIG libraries.  # Check for GIG libraries.
208  if (CONFIG_LIBGIG)  if (CONFIG_LIBGIG)
209    pkg_check_modules (GIG gig>=3.3.0)    pkg_check_modules (GIG IMPORTED_TARGET gig>=3.3.0)
210    set (CONFIG_LIBGIG ${GIG_FOUND})    if (GIG_FOUND)
   if (CONFIG_LIBGIG)  
211      include_directories (${GIG_INCLUDE_DIRS})      include_directories (${GIG_INCLUDE_DIRS})
212      link_directories (${GIG_LIBRARY_DIRS})      link_directories (${GIG_LIBRARY_DIRS})
213      link_libraries (${GIG_LIBRARIES})      link_libraries (${GIG_LIBRARIES})
# Line 165  if (CONFIG_LIBGIG) Line 215  if (CONFIG_LIBGIG)
215      # liggig supports fast information retrieval.      # liggig supports fast information retrieval.
216      set (CONFIG_LIBGIG_SETAUTOLOAD 1)      set (CONFIG_LIBGIG_SETAUTOLOAD 1)
217      # Check if libgig/SF.h is available.      # Check if libgig/SF.h is available.
218      check_include_file_cxx (libgig/SF.h CONFIG_LIBGIG_SF2)      check_include_file_cxx (libgig/SF.h HAVE_LIBGIG_SF_H)
219        if (NOT HAVE_LIBGIG_SF_H)
220          set (CONFIG_LIBGIG_SF2 0)
221        else ()
222          set (CONFIG_LIBGIG_SF2 1)    
223        endif ()
224    else ()    else ()
225      message (WARNING "*** GIG library not found.")      message (WARNING "*** GIG library not found.")
226        set (CONFIG_LIBGIG 0)
227    endif ()    endif ()
228  endif ()  endif ()
229    
# Line 189  macro (SHOW_OPTION text value) Line 245  macro (SHOW_OPTION text value)
245  endmacro ()  endmacro ()
246    
247    
248  message   ("\n  ${PACKAGE_NAME} ${PACKAGE_VERSION}")  message   ("\n  ${PACKAGE_NAME} ${PACKAGE_VERSION} (Qt ${QT_VERSION})")
249  message   ("\n  Build target . . . . . . . . . . . . . . . . . . .: ${CONFIG_BUILD_TYPE}\n")  message   ("\n  Build target . . . . . . . . . . . . . . . . . . .: ${CONFIG_BUILD_TYPE}\n")
250  show_option ("  LSCP instrument name support . . . . . . . . . . ." CONFIG_INSTRUMENT_NAME)  show_option ("  LSCP instrument name support . . . . . . . . . . ." CONFIG_INSTRUMENT_NAME)
251  show_option ("  LSCP mute/solo support . . . . . . . . . . . . . ." CONFIG_MUTE_SOLO)  show_option ("  LSCP mute/solo support . . . . . . . . . . . . . ." CONFIG_MUTE_SOLO)

Legend:
Removed from v.3589  
changed lines
  Added in v.3871

  ViewVC Help
Powered by ViewVC