blob: fc45ec787fdaf61f54ecc11d66116932cdbcecb2 [file] [log] [blame]
# -----------------------------------------------------------------------------
# This file defines the basics of CPack behavior for WebKit
#
# The following CPack variables will be defined if they were unset:
# - CPACK_PACKAGE_NAME to WebKit-${PORT}
# - CPACK_SOURCE_IGNORE_FILES to a known pattern of good files
#
# The following variables affect the behavior of packaging:
# - WEBKIT_CPACK_ALL_PORTS if defined and true, will not limit packaging
# to just include files of the port (affects CPACK_SOURCE_IGNORE_FILES,
# just if this variable was not defined before).
# - WEBKIT_CPACK_ADD_TESTS if defined and true, will also add tests
# (affects CPACK_SOURCE_IGNORE_FILES, just if this variable was
# not defined before)
# - WEBKIT_CPACK_ADD_TOOLS if defined and true, will also add tools
# (affects CPACK_SOURCE_IGNORE_FILES, just if this variable was
# not defined before)
# -----------------------------------------------------------------------------
if (NOT DEFINED CPACK_PACKAGE_NAME)
set(CPACK_PACKAGE_NAME WebKit-${PORT})
endif ()
if (NOT DEFINED CPACK_SOURCE_IGNORE_FILES)
set(CPACK_SOURCE_IGNORE_FILES
# Version control:
"/CVS/"
"/\\\\.svn/"
"/\\\\.bzr/"
"/\\\\.hg/"
"/\\\\.git/"
"\\\\.swp$"
"\\\\.#"
"/#"
"/\\\\.gitignore$"
"/\\\\.gitattributes$"
# SVN-only files should be ignored (site, examples...)
"/PerformanceTests/"
"/Examples/"
"/Websites/"
# Other build systems:
# - Makefiles (.mk/Makefile)
"\\\\.mk$"
"\\\\.make$"
"Makefile"
# - XCode (Mac)
"\\\\.xcodeproj"
"\\\\.xcconfig"
# - GYP
"\\\\.gyp"
# - QMake (Qt)
"\\\\.pri$"
"\\\\.pro$"
# Development & Runtime created files
"~$"
"\\\\.mode"
"\\\\.pbxuser$"
"\\\\.perspective"
"\\\\.pyc$"
"\\\\.pyo$"
"/cmake-build/"
"/build/"
"/WebKitBuild/"
"/Tools/Scripts/webkitpy/thirdparty/autoinstalled/"
)
if (NOT WEBKIT_CPACK_ADD_TESTS)
list(APPEND CPACK_SOURCE_IGNORE_FILES
"/LayoutTests/"
"/ManualTests/"
"/tests/"
)
endif (NOT WEBKIT_CPACK_ADD_TESTS)
if (NOT WEBKIT_CPACK_ADD_TOOLS)
list(APPEND CPACK_SOURCE_IGNORE_FILES
"/Tools/"
"/manual-tools/"
"/tools/"
"/PageLoadTools/"
)
endif (NOT WEBKIT_CPACK_ADD_TOOLS)
if (NOT WEBKIT_CPACK_ALL_PORTS)
# File and Directory patterns that no CMake-ified port uses
set(FILE_PATTERNS_UNKNOWN_PORTS
"/carbon/" "/Carbon/" "carbon\\\\." "Carbon\\\\."
"/cf/" "/Cf/" "cf\\\\." "Cf\\\\."
"/cg/" "/Cg/" "cg\\\\." "Cg\\\\."
"/chromium/" "/Chromium/" "chromium\\\\." "Chromium\\\\."
"/cocoa/" "/Cocoa/" "cocoa\\\\." "Cocoa\\\\."
"/Configurations/" "/Configurations/" "Configurations\\\\." "Configurations\\\\."
"/curl/" "/Curl/" "curl\\\\." "Curl\\\\."
"/gstreamer/" "/Gstreamer/" "gstreamer\\\\." "Gstreamer\\\\."
"/gtk/" "/Gtk/" "gtk\\\\." "Gtk\\\\."
"/iphone/" "/Iphone/" "iphone\\\\." "Iphone\\\\."
"/mac/" "/Mac/" "mac\\\\." "Mac\\\\."
"/opentype/" "/Opentype/" "opentype\\\\." "Opentype\\\\."
"/openvg/" "/Openvg/" "openvg\\\\." "Openvg\\\\."
"/qscriptengine/" "/Qscriptengine/" "qscriptengine\\\\." "Qscriptengine\\\\."
"/qscriptstring/" "/Qscriptstring/" "qscriptstring\\\\." "Qscriptstring\\\\."
"/qscriptvalue/" "/Qscriptvalue/" "qscriptvalue\\\\." "Qscriptvalue\\\\."
"/qt/" "/Qt/" "qt\\\\." "Qt\\\\."
"/qt4/" "/Qt4/" "qt4\\\\." "Qt4\\\\."
"/win/" "/Win/" "win\\\\." "Win\\\\."
"/wxcode/" "/Wxcode/" "wxcode\\\\." "Wxcode\\\\."
"/WebKitLibraries/"
"/English\\\\.lproj/"
"/Source/WebKitLegacy/"
"\\\\.a$"
"\\\\.exe$"
"\\\\.mm$"
)
# Append all Unknown port patterns
foreach (_pattern ${FILE_PATTERNS_UNKNOWN_PORTS})
list(FIND FILE_PATTERNS_${PORT} ${_pattern} _pattern_index)
if (_pattern_index GREATER -1)
message("pattern ${_pattern} declared of 'no-port' is actually used by ${PORT}")
else ()
list(APPEND CPACK_SOURCE_IGNORE_FILES ${_pattern})
endif ()
endforeach ()
# Append all "other-ports" patterns
foreach (_port ${ALL_PORTS})
if (NOT ${_port} STREQUAL ${PORT})
foreach (_pattern ${FILE_PATTERNS_${_port}})
list(FIND FILE_PATTERNS_${PORT} ${_pattern} _pattern_index)
if (_pattern_index GREATER -1)
message("pattern ${_pattern} of port ${_port} is also used by ${PORT}")
else ()
list(APPEND CPACK_SOURCE_IGNORE_FILES ${_pattern})
endif ()
endforeach ()
endif ()
endforeach ()
endif (NOT WEBKIT_CPACK_ALL_PORTS)
endif (NOT DEFINED CPACK_SOURCE_IGNORE_FILES)
# -----------------------------------------------------------------------------
# Include CPack that will define targets based on the variables defined before
# -----------------------------------------------------------------------------
include(CPack)