This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
Changes in CMake 2.4.6
* Remove svn test in ctestctest3
* Fix for FIND_* order and framworks with PREFIX usage.
* Fix for FindDoxygen and quiet mode.
* Find JavaVM as well as jvm
* Look for ruby1.8 and ruby
* Fix for cpack .tgz.sh and dash
* Fix for finding custom commands from a full path with CMAKE_CFG_INTDIR.
* Fix for Borland make and custom commands that do nothing
Changes in CMake 2.4.5
* Fix for seg fault when a macro runs a bad command BUG# 3815
* Fix fix for foo.dll.lib that does not brea -L/usr/lib in link names
* Fix problem with LIBRARY_OUTPUT_PATH and linking to a dll foo.dll.lib
instead of foo.lib
* Do not depend on optimized libraries for a debug build and visa versa.
* Fix target name matching custom command output conflict.
* Fix FindQt3 so that it does not find qt4
* Fix FindKDE4 so that it only looks for kde4-config
Changes in CMake 2.4.4
* CMake Version numbers on module directory
* elseif added
* Fix docs in CheckCSourceCompiles CheckCXXSourceCompiles and diagnostic
output.
* added Check(C/CXX)SourceRuns.cmake, CheckCXXCompilerFlag.cmake, Check
* add static and shared flags to make sure the specified versions of
libraries are used with -static -lfoo -shared -lbar
* Search for the compiler only once and store a full path. avoids problems
with PATH changes in cmake re-runs.
* make sure manifest files are generated with VS 8
* added FindASPELL.cmake, FindBZip2.cmake FindHPELL.cmake, FindJasper.cmake
FindLibXml2.cmake, FindLibXslt.cmake, FindOpenSSL.cmake
* fix for bug#3646 GLUT not Glut for framework name
* many fixes for FindKDE3.cmake
* Better FindPNG that honors REQUIRED and looks in more places.
* Support to find python 2.5
* Find Qt3 better
* Find Qt4 better and work with qmake and qmake-qt4 on the same machine.
* Much better FindRuby.cmake
* More stuff marked as advanced in FindTcl and FindSDL
* FindwxWidgets runs shell script wx-config with sh
* Support for cpack and vs8 install libraries
* Darwin shared library create and Fortran now work
* Support for isystem directories INCLUDE_DIRECTORIES (SYSTEM)
* Targets in makefiles to create pre-processed files and assembly files
can be turned off with these variables:
CMAKE_SKIP_PREPROCESSED_SOURCE_RULES CMAKE_SKIP_ASSEMBLY_SOURCE_RULES
* Support for QNX
* Better default search paths for unix and FIND_* stuff
* Use link /lib and not lib to create static libraries with MS
* Useqt4 works with static qt4 and other fixes
* UseSwig.cmake interface to add extra dependencies.
* Added APPEND option to ADD_CUSTOM_COMMAND, Added VERBATIM option to
ADD_CUSTOM_COMMAND and ADD_CUSTOM_TARGET
* add EXCLUDE_FROM_ALL option for ADD_LIBRARY and ADD_EXECUTABLE
* Fix automatic computation of binary path to work for subdirectories of out
of source directories. This addresses bug#3592.
* --debug-ouput to cmake that gives stack trace to message send error commands.
The stack trace is no longer there without it.
* + can be in a variable
* Do not replace @VAR@ syntax in list files. This addresses bug #2722
* much faster depend scanning
* do depends on system include directories
* Permission and install directory fixes
* New target property <CONFIG>_LOCATION (Debug, Release, etc)
* fix exclude from all in VS
* fix code completion problem in KDevelop
* Define MSYS when using msys generator
* fix referencece to projects outside the build tree VS 7,8
* Fix ZERO_CHECK to not always try and rebuild
* Fix Xcode universal binary rebuild problem
* add FILE_IS_NEWER to if command
* Add OPTIONAL to INSTALL command fix bug@2922
* add SORT and REVERSE to LIST command
* fix for seg fault bug #3815
* add SYBOLIC as a source file property see SET_SOURCE_FILES_PROPERTIES
* fix ctest valgrind if no coverage is done
* better message if bogus generator is specified.
* Better FindJava and FindJNI
* Fix doxygen.config for CMake
* add CPACK_MODULE_PATH
* Fix configuration for ctest dashboard targets Experimental, Nightly, etc
* Fix FindDoxygen for mac and app-bundles
* Fix CPack simple install test with NSIS
* Allow EXECUTE_PROCESS to strip trailing white space
* Fix mingw echo in makefiles
* Fix Xcode to not mess up -gdwarf-2
* Fix crash when "linking" to custom targets.
* Allow HEADER_FILE_ONLY to not compile the file in VS 7 and 8
* Fix mingw out of binary with spaces in the path.
* Fix for sudo make install (partial)
* Allow installed zlib, curl, expat, xmlrpc to be used.
* Add CMakeDependentOption.cmake module
* Allow projects to set install prefix default
* improved Find/Use wxWidgets
* add support for windows dll version numbers
* Fix message for -G when generator does not exist
* Fix html references in help
* Fix version on .exe cygwin
* allow global timeout in ctest
* Fix some odd cases with custom commands in VS 6
* Fix path suffix stuff with lib64 in FIND_* stuff.
* Fix delete in CMakeSetup to not change the current position in the list
* Fix debug stl run of ctest on Mac
* Use #2 for manifest nt command on dll and #1 on exe
* Add depends from files inside qrc files in qt
* Fix explort_library_depends to work with optimized and debug
Changes in CMake 2.4.3
* fix for 3557 - Under MSVC8 hardcoded TargetEnvironment for MIDL Compiler
* Fix for Xcode all projects to prevent -fvisibility=hidden flags. This is
needed to make RTTI work by default.
* better prototype for main in try compile of c programs avoids warnings in
logs.
* with visual studio do not use incremental linking for release builds by
default.
* fix bootstrap to use more ansi c main it test compiler
* fix import build settings to do case insensitive match on windows
* fix building in root directory c:/
* Add support for CXX only projects
* Better FindWxWidgets
* Added FindBoose.cmake
* add more fortran file extensions
* Cpack supports multiple packages at the same time
* Fix to FindKDE4 to look for kde4-config first
* Support for env var CMAKE_CONFIG_TYPE in ctest
* Fix for -DVAR=foo on the command line not saving to the cache
* ENH: Added creation of XXX_FIND_COMPONENTS list of all components requested
withREQUIRED option. This addresses the feature request in bug#3494.
* Object files get safe names
* progress is now reported with makefiles
* location of CMakeTmp changed to a varible
* CMAKE_COLOR_MAKEFILE cache variable available to turn off color output
* fixes for FindQt4 on mac.
* Better search paths for finding VTK
* Fix relative path problems in ADD_SUBDIRECTORY
* Fix long link commands on UNIX shells
* Fix depend file names in makefiles for generated headers
* CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS allows for if/endif without variable
* Xcode multiple custom command problem fixed.
* INSTALL_RPATH_USE_LINK_PATH when true will add the link path to the rpath
* Add target/fast rules in the sub directories
* Fix Visual stuido C and C++ targets to not add /TP and /TC
* print a context when cmake errors occur
* add rxvt-unicode, cygwin, and screen terminal support for color output
* Fix crash in CMakeSetup when status line is long
* make sure try compile files have a newline at the end
* fix for hp itanium build
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).