* 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
This commit is contained in:
@@ -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"
|
||||
)
|
||||
|
||||
|
||||
3
INSTALL
3
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.
|
||||
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user