summaryrefslogtreecommitdiffstats
path: root/ConfigureChecks.cmake
diff options
context:
space:
mode:
authorTimothy Pearson <[email protected]>2011-11-26 13:19:22 -0600
committerTimothy Pearson <[email protected]>2011-11-26 13:19:22 -0600
commit0710d08800aa69ca9579416a3d4bb6220593f229 (patch)
tree29a1cf8936b04f9cc4be5a8618648ce99cec2cc8 /ConfigureChecks.cmake
parent32e75dd020843a7a3dbb7d2df4ba6f0f234a69c5 (diff)
downloadrosegarden-0710d08800aa69ca9579416a3d4bb6220593f229.tar.gz
rosegarden-0710d08800aa69ca9579416a3d4bb6220593f229.zip
Initial attempt at migration to standard TDE CMake build system
Diffstat (limited to 'ConfigureChecks.cmake')
-rw-r--r--ConfigureChecks.cmake217
1 files changed, 217 insertions, 0 deletions
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
new file mode 100644
index 0000000..efe717d
--- /dev/null
+++ b/ConfigureChecks.cmake
@@ -0,0 +1,217 @@
+#################################################
+#
+# (C) 2011 Timothy Pearson
+# kb9vqf (AT) pearsoncomputing.net
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+if( BUILD_TRANSLATIONS AND NOT DEFINED MSGFMT_EXECUTABLE )
+ find_program( MSGFMT_EXECUTABLE msgfmt )
+ if( NOT MSGFMT_EXECUTABLE )
+ tde_message_fatal( "msgfmt program is required, but was not found on your system" )
+ endif( )
+endif( )
+
+# Initialize some variables
+SET(HAVE_XFT FALSE)
+SET(HAVE_ALSA FALSE)
+SET(HAVE_JACK FALSE)
+SET(HAVE_DSSI FALSE)
+SET(HAVE_LIBLO FALSE)
+SET(HAVE_LIBLRDF FALSE)
+SET(HAVE_LADSPA FALSE)
+SET(HAVE_LIRC FALSE)
+SET(HAVE_FFTW3F FALSE)
+
+# Check for Xft
+PKG_CHECK_MODULES(XFT xft>=2.1.0)
+IF(XFT_FOUND)
+ ADD_DEFINITIONS(-DHAVE_XFT)
+ SET(HAVE_XFT TRUE)
+ SET(XFT_LIBS ${XFT_LIBRARIES})
+ #MESSAGE("XFT_LIBS: ${XFT_LIBS}")
+ LIST(APPEND XFT_LIB_DIR ${XFT_LIBRARY_DIRS} ${XFT_LIBDIR})
+ #MESSAGE("XFT_LIB_DIR: ${XFT_LIB_DIR}")
+ LIST(APPEND XFT_INC_DIR ${XFT_INCLUDE_DIRS} ${XFT_INCLUDEDIR})
+ #MESSAGE("XFT_INC_DIR: ${XFT_INC_DIR}")
+ENDIF(XFT_FOUND)
+
+IF(WANT_SOUND)
+
+ # Check for ALSA 1.0
+ PKG_CHECK_MODULES(ALSA REQUIRED alsa>=1.0)
+ IF(ALSA_FOUND)
+ SET(HAVE_ALSA TRUE)
+ ADD_DEFINITIONS(-DHAVE_ALSA)
+ SET(ALSA_LIBS ${ALSA_LIBRARIES})
+ #MESSAGE("ALSA_LIBS: ${ALSA_LIBS}")
+ LIST(APPEND ALSA_LIB_DIR ${ALSA_LIBRARY_DIRS} ${ALSA_LIBDIR} )
+ #MESSAGE("ALSA_LIB_DIR: ${ALSA_LIB_DIR}")
+ LIST(APPEND ALSA_INC_DIR ${ALSA_INCLUDE_DIRS} ${ALSA_INCLUDEDIR})
+ #MESSAGE("ALSA_INC_DIR: ${ALSA_INC_DIR}")
+ ELSE(ALSA_FOUND)
+ MESSAGE(FATAL_ERROR "Please install the required package. Aborting")
+ ENDIF(ALSA_FOUND)
+
+ IF(WANT_JACK)
+ PKG_CHECK_MODULES(JACK jack>=0.77)
+ IF(JACK_FOUND)
+ ADD_DEFINITIONS(-DHAVE_LIBJACK)
+ SET(HAVE_JACK TRUE)
+ SET(JACK_LIBS ${JACK_LIBRARIES})
+ #MESSAGE("JACK_LIBS: ${JACK_LIBS}")
+ LIST(APPEND JACK_LIB_DIR ${JACK_LIBDIR} ${JACK_LIBRARY_DIRS})
+ #MESSAGE("JACK_LIB_DIR: ${JACK_LIB_DIR}")
+ LIST(APPEND JACK_INC_DIR ${JACK_INCLUDEDIR} ${JACK_INCLUDE_DIRS})
+ #MESSAGE("JACK_INC_DIR: ${JACK_INC_DIR}")
+ ENDIF(JACK_FOUND)
+ ENDIF(WANT_JACK)
+
+ IF(WANT_DSSI)
+ PKG_CHECK_MODULES(DSSI dssi>=0.4)
+ IF(DSSI_FOUND)
+ ADD_DEFINITIONS(-DHAVE_DSSI)
+ SET(HAVE_DSSI TRUE)
+ LIST(APPEND DSSI_INC_DIR ${DSSI_INCLUDE_DIRS} ${DSSI_INCLUDEDIR})
+ #MESSAGE("DSSI_INC_DIR: ${DSSI_INC_DIR}")
+ ENDIF(DSSI_FOUND)
+ ENDIF(WANT_DSSI)
+
+ PKG_CHECK_MODULES(LIBLO liblo>=0.7)
+ IF(LIBLO_FOUND)
+ ADD_DEFINITIONS(-DHAVE_LIBLO)
+ SET(HAVE_LIBLO TRUE)
+ SET(LIBLO_LIBS ${LIBLO_LIBRARIES})
+ #MESSAGE("LIBLO_LIBS: ${LIBLO_LIBS}")
+ LIST(APPEND LIBLO_LIB_DIR ${LIBLO_LIBDIR} ${LIBLO_LIBRARY_DIRS})
+ #MESSAGE("LIBLO_LIB_DIR: ${LIBLO_LIB_DIR}")
+ LIST(APPEND LIBLO_INC_DIR ${LIBLO_INCLUDEDIR} ${LIBLO_INCLUDE_DIRS})
+ #MESSAGE("LIBLO_INC_DIR: ${LIBLO_INC_DIR}")
+ ENDIF(LIBLO_FOUND)
+
+ PKG_CHECK_MODULES(LRDF lrdf>=0.3)
+ IF(LRDF_FOUND)
+ SET(HAVE_LIBLRDF TRUE)
+ ADD_DEFINITIONS(-DHAVE_LIBLRDF)
+ SET(LRDF_LIBS ${LRDF_LIBRARIES})
+ #MESSAGE("LRDF_LIBS: ${LRDF_LIBS}")
+ LIST(APPEND LRDF_LIB_DIR ${LRDF_LIBDIR} ${LRDF_LIBRARY_DIRS})
+ #MESSAGE("LRDF_LIB_DIR: ${LRDF_LIB_DIR}")
+ LIST(APPEND LRDF_INC_DIR ${LRDF_INCLUDEDIR} ${LRDF_INCLUDE_DIRS})
+ #MESSAGE("LRDF_INC_DIR: ${LRDF_INC_DIR}")
+ ENDIF(LRDF_FOUND)
+
+ FIND_PACKAGE(LADSPA QUIET)
+ IF(LADSPA_FOUND)
+ SET(HAVE_LADSPA TRUE)
+ ADD_DEFINITIONS(-DHAVE_LADSPA)
+ SET(LADSPA_INC_DIR ${LADSPA_INCLUDE_DIR})
+ MESSAGE(STATUS "Found LADSPA (${LADSPA_INC_DIR})")
+ ENDIF(LADSPA_FOUND)
+
+ENDIF(WANT_SOUND)
+
+PKG_CHECK_MODULES(FFTW3F REQUIRED fftw3f>=3.0.0)
+IF(FFTW3F_FOUND)
+ ADD_DEFINITIONS(-DHAVE_FFTW3F)
+ SET(HAVE_FFTW3F TRUE)
+ SET(FFTW3F_LIBS ${FFTW3F_LIBRARIES})
+ #MESSAGE("FFTW3F_LIBS: ${FFTW3F_LIBS}")
+ LIST(APPEND FFTW3F_LIB_DIR ${FFTW3F_LIBDIR} ${FFTW3F_LIBRARY_DIRS})
+ #MESSAGE("FFTW3F_LIB_DIR: ${FFTW3F_LIB_DIR}")
+ LIST(APPEND FFTW3F_INC_DIR ${FFTW3F_INCLUDEDIR} ${FFTW3F_INCLUDE_DIRS})
+ #MESSAGE("FFTW3F_INC_DIR: ${FFTW3F_INC_DIR}")
+ELSE(FFTW3F_FOUND)
+ MESSAGE(FATAL_ERROR "Please install the required package. Aborting")
+ENDIF(FFTW3F_FOUND)
+
+IF(WANT_LIRC)
+ FIND_PACKAGE(LIRC QUIET)
+ IF(LIRC_FOUND)
+ SET(HAVE_LIRC TRUE)
+ ADD_DEFINITIONS(-DHAVE_LIRC)
+ MESSAGE(STATUS "Found LIRC (${LIRC_LIBRARY})")
+ SET(LIRC_LIBS ${LIRC_LIBRARY})
+ SET(LIRC_INC_DIR ${LIRC_INCLUDE_DIR})
+ SET(LIRC_LIB_DIR ${LIRC_LIBRARY_DIR})
+ #MESSAGE("LIRC_LIBS: ${LIRC_LIBS}")
+ #MESSAGE("LIRC_LIB_DIR: ${LIRC_LIB_DIR}")
+ #MESSAGE("LIRC_INC_DIR: ${LIRC_INC_DIR}")
+ ENDIF(LIRC_FOUND)
+ENDIF(WANT_LIRC)
+
+FIND_PACKAGE(KDECONFIG)
+IF(KDECONFIG_EXECUTABLE)
+ MESSAGE(STATUS "Program kde-config found (${KDECONFIG_EXECUTABLE})")
+ #MESSAGE("KDE3PREFIX: ${KDE3PREFIX}")
+ENDIF(KDECONFIG_EXECUTABLE)
+
+FIND_PACKAGE(MEINPROC REQUIRED)
+IF(MEINPROC_FOUND)
+ MESSAGE(STATUS "Program meinproc found (${MEINPROC_EXECUTABLE})")
+ENDIF(MEINPROC_FOUND)
+
+# Check GCC for PCH support
+SET(USE_PCH FALSE)
+IF(WANT_PCH)
+ FIND_PACKAGE(PCHSupport)
+ IF(PCHSupport_FOUND)
+ SET(USE_PCH TRUE)
+ ADD_DEFINITIONS(-DUSE_PCH)
+ MESSAGE(STATUS "Enabling precompiled headers for GCC ${gcc_compiler_version}")
+ ENDIF(PCHSupport_FOUND)
+ENDIF(WANT_PCH)
+
+# Check PTHREAD_MUTEX_RECURSIVE
+INCLUDE(CheckCSourceCompiles)
+CHECK_C_SOURCE_COMPILES(
+ "#include <pthread.h>
+ int main(int argc, char **argv) {
+ pthread_mutexattr_t attr;
+ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
+ return 0;
+ }" PTHREAD_HAS_MUTEX_RECURSIVE)
+IF(PTHREAD_HAS_MUTEX_RECURSIVE)
+ ADD_DEFINITIONS(-DHAVE_PTHREAD_MUTEX_RECURSIVE)
+ENDIF(PTHREAD_HAS_MUTEX_RECURSIVE)
+# End of PTHREAD_MUTEX_RECURSIVE Test
+
+SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -w -fexceptions -DNDEBUG -include tqt.h")
+SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -Wall -fexceptions -DDEBUG -include tqt.h")
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -Wall -fexceptions -DDEBUG -include tqt.h")
+
+MESSAGE(STATUS "Rosegarden ${VERSION} will be built for install into ${CMAKE_INSTALL_PREFIX}")
+
+IF(WANT_DEBUG)
+ IF(WANT_FULLDBG)
+ MESSAGE(STATUS "Configured to compile including full debug information in the executables")
+ SET(CMAKE_BUILD_TYPE Debug CACHE STRING
+ "Choose the type of build, options are: Debug Release RelWithDebInfo" FORCE)
+ ELSE(WANT_FULLDBG)
+ MESSAGE(STATUS "Configured to compile including debug information in the executables")
+ SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
+ "Choose the type of build, options are: Debug Release RelWithDebInfo" FORCE)
+ ENDIF(WANT_FULLDBG)
+ELSE(WANT_DEBUG)
+ MESSAGE(STATUS "Configured to compile for release without debug information")
+ SET(CMAKE_BUILD_TYPE Release CACHE STRING
+ "Choose the type of build, options are: Debug Release RelWithDebInfo" FORCE)
+ENDIF(WANT_DEBUG)
+MARK_AS_ADVANCED(CMAKE_BUILD_TYPE)
+
+check_type_size( "int" SIZEOF_INT BUILTIN_TYPES_ONLY )
+check_type_size( "long" SIZEOF_LONG BUILTIN_TYPES_ONLY )
+
+check_include_file( stdint.h HAVE_STDINT_H )
+check_include_file( systems.h HAVE_SYSTEMS_H )
+check_include_file( linux/inotify.h HAVE_INOTIFY )
+
+check_function_exists( statvfs HAVE_STATVFS )
+
+# common required stuff
+find_package( TQt )
+find_package( TDE )