From 396dbbc1b304500ced33ad42d0b9b4f987b78b57 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Tue, 30 Sep 2008 11:10:52 +0000 Subject: [PATCH] * removed (buggy) PCH support * added support for CFLAGS and CXXFLAGS environment variables git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1717 0778d3d1-df1d-0410-868b-ea421aaaa00d --- CMakeLists.txt | 32 +++----- INSTALL | 3 + cmake/modules/FindPCHSupport.cmake | 127 ----------------------------- 3 files changed, 16 insertions(+), 146 deletions(-) delete mode 100644 cmake/modules/FindPCHSupport.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 3bb944859..387ecd2b7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.4.5) PROJECT(lmms) SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH}) -SET(CMAKE_BUILD_TYPE relwithdebinfo) IF(COMMAND CMAKE_POLICY) CMAKE_POLICY(SET CMP0005 NEW) @@ -44,7 +43,6 @@ OPTION(WANT_SWH "Include Steve Harris's LADSPA plugins" ON) OPTION(WANT_TAP "Include Tom's Audio Processing LADSPA plugins" ON) OPTION(WANT_VST "Include VST support" ON) OPTION(WANT_WINMM "Include WinMM MIDI support" OFF) -OPTION(WANT_PCH "Use precompiled headers" OFF) IF(LMMS_BUILD_WIN32) SET(WANT_ALSA OFF) @@ -88,7 +86,6 @@ CHECK_INCLUDE_FILES(string.h LMMS_HAVE_STRING_H) CHECK_INCLUDE_FILES(process.h LMMS_HAVE_PROCESS_H) CHECK_INCLUDE_FILES(locale.h LMMS_HAVE_LOCALE_H) - # check for Qt4 FIND_PACKAGE(Qt4 REQUIRED) SET(QT_USE_QTXML 1) @@ -342,10 +339,17 @@ IF(NOT LMMS_HAVE_SAMPLERATE) ENDIF(NOT LMMS_HAVE_SAMPLERATE) - CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/lmmsconfig.h.in ${CMAKE_BINARY_DIR}/lmmsconfig.h) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/lmms.rc.in ${CMAKE_BINARY_DIR}/lmms.rc) +# set compiler flags +#SET(CMAKE_BUILD_TYPE relwithdebug) +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -g -Wall") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -g -fno-exceptions -Wall") +#SET(CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE} "${CMAKE_C_FLAGS}") +#SET(CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE} "${CMAKE_CXX_FLAGS}") + + # people simply updating SVN will still have this and mess up build with it FILE(REMOVE include/lmmsconfig.h) @@ -371,7 +375,6 @@ ADD_FILE_DEPENDENCIES(${CMAKE_BINARY_DIR}/lmmsconfig.h ${lmms_MOC_out}) ADD_CUSTOM_COMMAND(OUTPUT ${LMMS_ER_H} COMMAND ${BIN2RES} ARGS ${lmms_EMBEDDED_RESOURCES} > ${LMMS_ER_H} DEPENDS ${BIN2RES}) -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -Wall ${CXXFLAGS}") IF(WIN32) SET(WINRC "${CMAKE_BINARY_DIR}/lmmsrc.obj") ADD_CUSTOM_COMMAND(OUTPUT ${WINRC} @@ -382,9 +385,11 @@ IF(WIN32) DEPENDS ${CMAKE_BINARY_DIR}/lmms.rc) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes") ELSE(WIN32) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -DPIC") ENDIF(WIN32) + + # make sub-directories ADD_SUBDIRECTORY(plugins) ADD_SUBDIRECTORY(data) @@ -512,17 +517,7 @@ ADD_CUSTOM_TARGET(win32-pkg ) -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}") - ADD_PRECOMPILED_HEADER(lmms pch include/pch.h) - ENDIF(PCHSupport_FOUND) -ENDIF(WANT_PCH) - -SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LMMS_ER_H} ${lmms_MOC_out} ${lmms_UI_out} lmmsconfig.h alsaconfig.h pch.h.gch/ lmms.1.gz") +SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${LMMS_ER_H} ${lmms_MOC_out} ${lmms_UI_out} lmmsconfig.h alsaconfig.h lmms.1.gz") # @@ -533,8 +528,7 @@ MESSAGE("\n" "Installation Summary\n" "--------------------\n" "* Install Directory : ${CMAKE_INSTALL_PREFIX}\n" -"* Build type : ${CMAKE_BUILD_TYPE}\n" -"* Use precompiled headers : ${USE_PCH}\n" +#"* Build type : ${CMAKE_BUILD_TYPE}\n" "* Use system's libsamplerate : ${LMMS_HAVE_SAMPLERATE}\n" ) diff --git a/INSTALL b/INSTALL index 04b91acb1..095a9b305 100644 --- a/INSTALL +++ b/INSTALL @@ -15,6 +15,9 @@ in the root of source-tree although this is not recommended. When performing an out-of-tree build after there's already an in-tree build, make sure to run "make distclean" before running cmake inside build-directory. +If you want to use custom compiler flags simply set the environment variables +CFLAGS and CXXFLAGS. + After running cmake (the 3rd command above) you can see a summary of things that are going to be built into LMMS or built as plugins. Install the according libraries and development files if a certain feature is not enabled. diff --git a/cmake/modules/FindPCHSupport.cmake b/cmake/modules/FindPCHSupport.cmake deleted file mode 100644 index 29c984d2c..000000000 --- a/cmake/modules/FindPCHSupport.cmake +++ /dev/null @@ -1,127 +0,0 @@ -# - Try to find precompiled headers support for GCC 3.4 and 4.x -# Once done this will define: -# -# Variable: -# PCHSupport_FOUND -# -# Macro: -# ADD_PRECOMPILED_HEADER - -IF(CMAKE_COMPILER_IS_GNUCXX) - EXEC_PROGRAM( - ${CMAKE_CXX_COMPILER} - ARGS --version - OUTPUT_VARIABLE _compiler_output) - STRING(REGEX REPLACE ".* ([0-9]\\.[0-9]\\.[0-9]) .*" "\\1" - gcc_compiler_version ${_compiler_output}) - #MESSAGE("GCC Version: ${gcc_compiler_version}") - IF(gcc_compiler_version MATCHES "4\\.[0-9]\\.[0-9]") - SET(PCHSupport_FOUND TRUE) - ELSE(gcc_compiler_version MATCHES "4\\.[0-9]\\.[0-9]") - IF(gcc_compiler_version MATCHES "3\\.4\\.[0-9]") - SET(PCHSupport_FOUND TRUE) - ENDIF(gcc_compiler_version MATCHES "3\\.4\\.[0-9]") - ENDIF(gcc_compiler_version MATCHES "4\\.[0-9]\\.[0-9]") - IF(PCHSupport_FOUND) - ADD_DEFINITIONS( -DUSE_PCH=1 ) - ELSE(PCHSupport_FOUND) - ADD_DEFINITIONS( -DUSE_PCH=0 ) - ENDIF(PCHSupport_FOUND) -ENDIF(CMAKE_COMPILER_IS_GNUCXX) - - -# ADD_PRECOMPILED_HEADER( targetName HEADERS _inputs ) -MACRO(ADD_PRECOMPILED_HEADER _targetName _inputs ) - FOREACH (_current_FILE ${ARGN}) - - GET_FILENAME_COMPONENT(_name ${_current_FILE} NAME) - SET(_source "${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}") - SET(_outdir "${CMAKE_CURRENT_BINARY_DIR}/${_name}.gch") - MAKE_DIRECTORY(${_outdir}) - SET(_output "${_outdir}/${CMAKE_BUILD_TYPE}.c++") - STRING(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" _flags_var_name) - SET(_compiler_FLAGS ${${_flags_var_name}}) - - GET_DIRECTORY_PROPERTY(_directory_flags INCLUDE_DIRECTORIES) - FOREACH(item ${_directory_flags}) - LIST(APPEND _compiler_FLAGS "-I${item}") - ENDFOREACH(item) - - GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS) - LIST(APPEND _compiler_FLAGS ${_directory_flags}) - - # some hacks for Qt4 - Tobias Doerffel, 2008 - STRING(TOUPPER "COMPILE_DEFINITIONS_${CMAKE_BUILD_TYPE}" CD) - GET_DIRECTORY_PROPERTY(_directory_flags ${CD} ) - FOREACH(item ${_directory_flags}) - LIST(APPEND _compiler_FLAGS "-D${item}") - ENDFOREACH(item) - GET_DIRECTORY_PROPERTY(_directory_flags COMPILE_DEFINITIONS) - FOREACH(item ${_directory_flags}) - LIST(APPEND _compiler_FLAGS "-D${item}") - ENDFOREACH(item) - - SEPARATE_ARGUMENTS(_compiler_FLAGS) - #MESSAGE("_compiler_FLAGS: ${_compiler_FLAGS}") - #message("${CMAKE_CXX_COMPILER} ${_compiler_FLAGS} -x c++-header -o ${_output} ${_source}") - ADD_CUSTOM_COMMAND( - OUTPUT ${_output} - COMMAND ${CMAKE_CXX_COMPILER} - ${_compiler_FLAGS} - ${COMPILE_DEFINITIONS} - -x c++-header - -o ${_output} ${_source} - DEPENDS ${_source} ) - ADD_CUSTOM_TARGET(${_targetName}_gch DEPENDS ${_output}) - ADD_DEPENDENCIES(${_targetName} ${_targetName}_gch) - #SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-include ${_name} -Winvalid-pch -H") - #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -include ${_name} -Winvalid-pch") - SET_TARGET_PROPERTIES(${_targetName} PROPERTIES - COMPILE_FLAGS "-include ${_name} -Winvalid-pch" - ) - ENDFOREACH (_current_FILE) -ENDMACRO(ADD_PRECOMPILED_HEADER) - -# ADD_PRECOMPILED_HEADER_INPLACE( targetName HEADERS _inputs ) -MACRO(ADD_PRECOMPILED_HEADER_INPLACE _targetName _inputs ) - STRING(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" _flags_var_name) - SET(_compiler_FLAGS ${${_flags_var_name}}) - - GET_DIRECTORY_PROPERTY(_directory_flags INCLUDE_DIRECTORIES) - FOREACH(item ${_directory_flags}) - LIST(APPEND _compiler_FLAGS "-I${item}") - ENDFOREACH(item) - - GET_DIRECTORY_PROPERTY(_directory_flags DEFINITIONS) - LIST(APPEND _compiler_FLAGS ${_directory_flags}) - - SEPARATE_ARGUMENTS(_compiler_FLAGS) - #MESSAGE("_compiler_FLAGS: ${_compiler_FLAGS}") - MAKE_DIRECTORY("${CMAKE_CURRENT_BINARY_DIR}/gch") - FOREACH (_current_FILE ${ARGN}) - - GET_FILENAME_COMPONENT(_name ${_current_FILE} NAME) - SET(_source "${CMAKE_CURRENT_SOURCE_DIR}/${_current_FILE}") - SET(_output "${CMAKE_CURRENT_BINARY_DIR}/gch/${_name}.gch") - #message("${CMAKE_CXX_COMPILER} ${_compiler_FLAGS} -x c++-header -o ${_output} ${_source}") - ADD_CUSTOM_COMMAND( - OUTPUT ${_output} - COMMAND ${CMAKE_CXX_COMPILER} - ${_compiler_FLAGS} - -x c++-header - -fPIC - -o ${_output} ${_source} - DEPENDS ${_source} ) - LIST(APPEND GCH_FILES ${_output}) - ENDFOREACH (_current_FILE) - - #MESSAGE("GCH_FILES: ${GCH_FILES}") - FOREACH (GCH_FILE ${GCH_FILES}) - SET_DIRECTORY_PROPERTIES( PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${GCH_FILE} ) - ENDFOREACH (GCH_FILE) - SEPARATE_ARGUMENTS(GCH_FILES) - ADD_CUSTOM_TARGET(${_targetName}_gch DEPENDS ${GCH_FILES}) - ADD_DEPENDENCIES(${_targetName} ${_targetName}_gch) - INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_BINARY_DIR}/gch/) - SET_TARGET_PROPERTIES(${_targetName} PROPERTIES COMPILE_FLAGS "-Winvalid-pch") -ENDMACRO(ADD_PRECOMPILED_HEADER_INPLACE)