Skip to content

Latest commit

 

History

History
114 lines (107 loc) · 5.43 KB

CHANGES.md

File metadata and controls

114 lines (107 loc) · 5.43 KB

git master

  • Add OPTIONAL argument to git_external. This gives users the possibility of cloning a repository without aborting the configuration if the operation fails
  • Coverage.cmake fixes:
    • Fix missing coverage report for multiple project directories
    • Rename targets to match PROJECT_NAME-target syntax
    • Exclude only generated files from COMMON_GENERATED_FILES property, not everything from PROJECT_BINARY_DIR
  • Added new test targets called nightlytests and Project-nightlytests. This targets depend on perf tests, and cpp test files with the prefix "nightly".
  • Add c++11 noexcept test (CXX_NOEXCEPT_SUPPORTED define)

2015.11

  • cmake 2.8.9 or later is now required; reduced cmake 3 warnings
  • cmake 3 is required for finding a project with find_package() from outside the build tree/from the install tree.
  • Optimized cmake run speed significantly
  • New project-png target generating a dependency graph if graphviz is found
  • New explicit rebase target to update sub projects and externals to configured revision
  • FindPackages.cmake should no longer be used; use common_package() for each dependency and common_package_post() at last (will write defines.h, hence after the last call to common_package)
  • New variable COMMON_SOURCE_DIR to define the place for all sub projects and externals, defaults to CMAKE_SOURCE_DIR
  • Sub projects do not FATAL_ERROR on missing required dependencies, are deactivated instead
  • GitExternal.cmake:
    • 'user' remote for cloned github repositories (added if GITHUB_USER) is used default for 'git push'
    • Added SHALLOW and VERBOSE options
    • new targets DIR-rebase and rebase to update git externals and sub projects
  • CommonPackageConfig.cmake replaces PackageConfig.cmake. It uses the export(EXPORT) feature from CMake 3 to generate ${PROJECT_NAME}Targets.cmake file which provides IMPORTED targets. Client projects should use those targets in target_link_libraries() (or NAME_LINK_LIBRARIES if common_library) rather than ${PROJECT_NAME}_LIBRARIES.
  • New variable NAME_OMIT_EXPORT for common_library() excludes a target from the list of exported targets. This replaces the project-wide ${PROJECT_NAME}_EXCLUDE_LIBRARIES variable.
  • Exported targets provided by CommonPackageConfig.cmake are now generated by common_application() and common_library(); generic target hook for add_executable() and add_library() does not exist anymore.
  • common_check_targets() now adds cppcheck, cpplint and clangcheck targets to targets added by common_application() and common_library() instead of adding them via add_executable() and add_library().
  • Removed legacy RELEASE_VERSION magic
  • common_compiler_flags() macro replaces globally set CMAKE_C[XX]_FLAGS; is automatically applied when using common_application, common_library and CommonCTest
  • api.h & version.h/cpp are now generated by common_library, not anymore globally per project (COMMON_INCLUDES and COMMON_SOURCES are not needed/used anymore)
  • Added AppleCheckOpenGL.cmake to check for conflicting OpenGL link libraries on OS X
  • Added CommonDate.cmake to provide today's date

2015.06

  • New SubProject module based on GitExternal
  • Subprojects share a single copy of CMake/common
  • Buildyard bootstrapping mechanism deprecated and removed
  • Using "cmake -DINSTALL_PACKAGES=1" installs system packages required by a project (Debian/Ubuntu + OSX)
  • Added Qt5 support in common_library() and common_application()
  • New common_gui_application() for configuring GUI applications (OSX app bundle)
  • New common_documentation() for documentation repositories. Deprecated generation of index.html by CMake in favor of Jekyll for github projects
  • Fixed doxygen and coverage targets for subprojects, enforce LCOV >= 1.11
  • Fixed cppcheck and cpplint targets for subprojects
  • New common_package() macro to find a dependency consistently
  • PackageConfig searches for ABI-matching upstream dependencies. If VERSION_ABI is not available, fallback to matching VERSION MAJOR+MINOR
  • Support for detecting both Python2 and Python3 versions
  • Removed LAST_RELEASE variable from projects and use VERSION instead
  • Separate unit tests from performance tests
  • Arch Linux added to the list of supported platforms
  • Multiple fixes for CMake3
  • More quiet runs
  • Merged and retired CMakeBBP fork
  • Removed obsolete components:
    • GNUModules
    • WriteModuleFile
    • BuildLibrary
    • FindDisplayCluster
    • FindFlatBuffers
    • FindTuio
  • Windows-specific improvements:
    • Targets are properly organized into folders in VisualStudio IDE
    • Unwanted targets removed from VisualStudio "All Build" target
    • Many fixes for Boost detection
  • Mac-specific improvements:
    • common_gui_application() installs a relocatable app bundle packaged into a .dmg (if macdeployqt is available)
    • Use C++11 std and stdlib on OSX >= 10.9, C++03 on <= 10.8

2014.6

  • Flatten git externals in release branches Needed for some build services which do not allow to pull in git externals at runtime.
  • Decouple RELEASE_VERSION from VERSION_ABI. The first is detected automatically when build from a release branch or non-git source folder. The latter now has to be set explicitely in the top-level CMakeLists.
  • Add COMMON_USE_CXX03 to disable c++11 features for incompatible projects.
  • Unify active ubuntu codenames in Ubuntu.cmake
  • Denoised output of find_package() generated by PackageConfig
  • Match lcov colors to BBP quality metrics