diff options
author | Steve Block <steveblock@google.com> | 2011-05-06 11:45:16 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2011-05-12 13:44:10 +0100 |
commit | cad810f21b803229eb11403f9209855525a25d57 (patch) | |
tree | 29a6fd0279be608e0fe9ffe9841f722f0f4e4269 /Source/cmake/WebKitHelpers.cmake | |
parent | 121b0cf4517156d0ac5111caf9830c51b69bae8f (diff) | |
download | external_webkit-cad810f21b803229eb11403f9209855525a25d57.zip external_webkit-cad810f21b803229eb11403f9209855525a25d57.tar.gz external_webkit-cad810f21b803229eb11403f9209855525a25d57.tar.bz2 |
Merge WebKit at r75315: Initial merge by git.
Change-Id: I570314b346ce101c935ed22a626b48c2af266b84
Diffstat (limited to 'Source/cmake/WebKitHelpers.cmake')
-rw-r--r-- | Source/cmake/WebKitHelpers.cmake | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/Source/cmake/WebKitHelpers.cmake b/Source/cmake/WebKitHelpers.cmake new file mode 100644 index 0000000..58c506b --- /dev/null +++ b/Source/cmake/WebKitHelpers.cmake @@ -0,0 +1,79 @@ +# Sets extra compile flags for a target, depending on the compiler being used. +# Currently, only GCC is supported. +MACRO(WEBKIT_SET_EXTRA_COMPILER_FLAGS _target) + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + GET_TARGET_PROPERTY(OLD_COMPILE_FLAGS ${_target} COMPILE_FLAGS) + IF (${OLD_COMPILE_FLAGS} STREQUAL "OLD_COMPILE_FLAGS-NOTFOUND") + SET(OLD_COMPILE_FLAGS "") + ENDIF () + + # Disable some optimizations on buggy compiler versions + # GCC 4.5.1 does not implement -ftree-sra correctly + EXEC_PROGRAM(${CMAKE_CXX_COMPILER} ARGS -dumpversion OUTPUT_VARIABLE COMPILER_VERSION) + IF (${COMPILER_VERSION} STREQUAL "4.5.1") + SET(OLD_COMPILE_FLAGS "${OLD_COMPILE_FLAGS} -fno-tree-sra") + ENDIF () + + IF (NOT SHARED_CORE) + SET(OLD_COMPILE_FLAGS "-fPIC -fvisibility=hidden ${OLD_COMPILE_FLAGS}") + ENDIF () + + SET(OLD_COMPILE_FLAGS "-fno-exceptions -fno-strict-aliasing ${OLD_COMPILE_FLAGS}") + + # Enable warnings by default + SET(OLD_COMPILE_FLAGS "-W -DANOTHER_BRICK_IN_THE -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat -Wformat-security -Wmissing-format-attribute -Wno-format-y2k -Wno-parentheses -Wno-unused-parameter -Wpointer-arith -Wreturn-type -Wundef -Wwrite-strings ${OLD_COMPILE_FLAGS}") + + SET_TARGET_PROPERTIES (${_target} PROPERTIES + COMPILE_FLAGS "${OLD_COMPILE_FLAGS}") + + UNSET(OLD_COMPILE_FLAGS) + ENDIF () +ENDMACRO() + + +# Append the given flag to the target property. +# Builds on top of GET_TARGET_PROPERTY() and SET_TARGET_PROPERTIES() +MACRO (ADD_TARGET_PROPERTIES _target _property _flags) + GET_TARGET_PROPERTY (_tmp ${_target} ${_property}) + IF (NOT _tmp) + SET (_tmp "") + ENDIF (NOT _tmp) + + FOREACH (f ${_flags}) + SET (_tmp "${_tmp} ${f}") + ENDFOREACH (f ${_flags}) + + SET_TARGET_PROPERTIES (${_target} PROPERTIES ${_property} ${_tmp}) + UNSET (_tmp) +ENDMACRO (ADD_TARGET_PROPERTIES _target _property _flags) + + +# Append the given dependencies to the source file +MACRO(ADD_SOURCE_DEPENDENCIES _source _deps) + GET_SOURCE_FILE_PROPERTY(_tmp ${_source} OBJECT_DEPENDS) + IF (NOT _tmp) + SET (_tmp "") + ENDIF () + + FOREACH (f ${_deps}) + LIST(APPEND _tmp "${f}") + ENDFOREACH () + + SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES OBJECT_DEPENDS "${_tmp}") + UNSET(_tmp) +ENDMACRO() + + +# Append the given dependencies to the source file +# This one consider the given dependencies are in ${DERIVED_SOURCES_DIR} +# and prepends this to every member of dependencies list +MACRO(ADD_SOURCE_DERIVED_DEPENDENCIES _source _deps) + SET(_tmp "") + FOREACH (f ${_deps}) + LIST(APPEND _tmp "${DERIVED_SOURCES_DIR}/${f}") + ENDFOREACH () + + ADD_SOURCE_DEPENDENCIES(${_source} ${_tmp}) + UNSET(_tmp) +ENDMACRO() + |