1. 21 Jan, 2019 1 commit
    • Brad King's avatar
      Refactor exclusion of -I/usr/include to avoid per-language values · 15ad8300
      Brad King authored
      Add a `CMAKE_PLATFORM_IMPLICIT_INCLUDE_DIRECTORIES` to contain the
      hard-coded list of paths to be excluded from `-I` arguments so that the
      values remain excluded even if the per-language
      `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` variants change.
      
      This is needed to preserve our historical exclusion of `-I/usr/include`
      even when it is not a real implicit include directory.  A policy may be
      needed to remove it later.
      15ad8300
  2. 18 Jan, 2019 4 commits
  3. 17 Jan, 2019 7 commits
  4. 16 Jan, 2019 28 commits
    • Craig Scott's avatar
      Merge topic 'qt_wrap_command_deprecations' · 9e84e14d
      Craig Scott authored
      74dc68b4
      
       qt_wrap_*: Add deprecation notes to command docs
      Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
      Reviewed-by: Brad King's avatarBrad King <brad.king@kitware.com>
      Merge-request: !2738
      9e84e14d
    • Fred Baksik's avatar
      GHS: Update test suite · 21ab58d3
      Fred Baksik authored
      -- Allow for testing default toolset settings
         If CMake_TEST_GreenHillsMULTI_config is not defined then
         just run the GHS tests using defaults.
      -- Handle paths that contain spaces
      -- Update test suite to use "-non_shared" linker option
         Fixes linking issue if GHS is not shipped with shared libraries
      -- Other minor cleanup
      21ab58d3
    • Fred Baksik's avatar
      GHS: Add Compiler ID detection · 72e0c115
      Fred Baksik authored
      -- Detect GHS compiler and version
         Detect ARCHITECTURE_ID for PPC / ARM / 86 targets
         Detect PLATFORM_ID for Integrity and Integrity178 platforms
         Using defines specified in the documents for the compilers: 201416 PPC / 201754 ARM / 201714 86
      -- Fallback C/CXX compiler ID to GHS if not otherwise detected and using GHS MULTI generator
         Works around issue with some GHS compilers not setting __ghs__ compiler define
      -- Tweak Compiler ID checking so major id of 002017 is not replaced with 217
      -- Prefer try_compile() library targets when testing for working GHS compilers
      -- Avoid CMake errors if reading past end of file for checking if file is PE executable
      72e0c115
    • Fred Baksik's avatar
      GHS: try_compile() now uses GHS platform variables · 436cc5e9
      Fred Baksik authored
      -- Forward GHS platform variables to try_compile()
         CMAKE_TRY_COMPILE_PLATFORM_VARIABLES only worked for source signature try_compile()
      -- Update tests to no longer add GHS platform variables to try_compile()
      -- Avoid linker error in GhsMulti/GhsMultiCompilerOptions/CMakeLists.txt by building library
      436cc5e9
    • Fred Baksik's avatar
      GHS: Fix toolset selection · 4a1ec0de
      Fred Baksik authored
      -- Allow -T to accept full or partial paths
      -- Use "C:/ghs" if GHS_TOOLSET_ROOT is empty string
      -- Put more information in error messages
      4a1ec0de
    • Fred Baksik's avatar
      GHS: Append ".gpj" to target name when generating build command · 1a66acde
      Fred Baksik authored
      -- Add test demonstrating issue
      -- In the case of executable targets the target name is usually the same as used in "-o filename"
         But for static libraries the target name is usually "-o libname.a"
         "gbuild.exe target" will build whatever target matches against even the output from the compiler or linker
         But the targets in "cmake --build . --target name" should be target names in CMakeLists.txt not the actual filenames
         So change the "name" to "name.gpj" so it matches the target name in CMakeLists.txt.
      
      Fixes #15975
      1a66acde
    • Fred Baksik's avatar
      GHS: Integrity Application updates · 0c9e47d7
      Fred Baksik authored
      -- Check the property "ghs_integrity_app" on executables to set [INTEGRITY Application]
         If the property is not set then check if an integrate file is one of the source files (.int file).
         Dynamic Downloads that do not have an integrate file can use this property along with setting
         the compiler flag "-dynamic".
      
      -- Remove parsing for -dynamic flag; it is only used to print a comment
         The MULTI GUI will show if it is a Monolith or Dynamic Download application
      
      -- Use project references to specify which executables are part of the Integrity Application
         Usually Implicit Dependency Analysis will ensure that executable targets
         become part of the application.  This does not work for Dynamic Download without integrate files.
         Use `add_dependencies(dd vas)` to mark that the vas target is part of dd target.
      
      -- Update file locations in the Integrate files.
      0c9e47d7
    • Fred Baksik's avatar
      GHS: Add support for some of the source file properties · 80443184
      Fred Baksik authored
      -- INCLUDE_DIRECTORIES, COMPILE_DEFINITIONS, and COMPILE_OPTIONS
      80443184
    • Fred Baksik's avatar
      GHS: Add support for object libraries · 73092b22
      Fred Baksik authored
      73092b22
    • Fred Baksik's avatar
      GHS: EXCLUDE_FROM_ALL updates · 14f3ba20
      Fred Baksik authored
      -- Excluded targets should be generated but not included in build ALL
      -- Use the correct source list for this configuration when writing sources
      14f3ba20
    • Fred Baksik's avatar
      GHS: Use the correct compiler flags for CMAKE_BUILD_TYPE · 702121c5
      Fred Baksik authored
      -- Do not use CMAKE_C_FLAGS_RELEASE flags when CMAKE_BUILD_TYPE is empty
         if CMAKE_BUILD_TYPE was not set the generator would use Release settings
         this does not match the documented behavior of CMAKE_BUILD_TYPE
      
      -- CMAKE_C_FLAGS_<CONFIG> not used when -kernel is present
         Fixes issue where CMAKE_C_FLAGS_<CONFIG> is ignored when -kernel option is present as a compiler option
         When the -kernel option is added to an executable it uses a different set of language flags
         This does not occur -kernel=<type> is used or if it is added as part of a link flag
         The variables CMAKE_<LANG>_GHS_KERNEL_FLAGS_<CONFIG> are removed
         NOTE: By default this only added the flag -ldebug which links in the debugger library.
      
      -- Separate compiler options by newlines
      702121c5
    • Fred Baksik's avatar
      GHS: Cleanup unused file handling functions and file output updates · b2a72ec7
      Fred Baksik authored
      -- File handling cleanup
      -- Rename some functions to clarify what they do
      -- Update to source file path conversion; only perform conversion when using windows
      b2a72ec7
    • Fred Baksik's avatar
      GHS: Update the link line processing · 595932c4
      Fred Baksik authored
      -- add missing executable linker libs from:
         CMAKE_C_STANDARD_LIBRARIES
      -- add missed transitive link libraries
      -- add skipped library linker options
      -- The linker expects -l../relative/path/to/lib.a to be relative to the top-level project
         Because there can be multiple top-level projects convert the path to an absolute path to target
      595932c4
    • Fred Baksik's avatar
      GHS: Place build system outputs per target output directives · 2ed2d6b4
      Fred Baksik authored
      -- Set output and object file locations
      -- Suffixes are no longer being forced but will now follow the target properties
         By default GHS tools have no suffix for executable files so
         CMAKE_EXECUTABLE_SUFFIX was changed to meet this behavior
      -- Remove #if 0 blocked out code; it has been replaced.
         Forcing the -relprog option has been removed from non-kernel executable targets.
         The default value of this option (if it is even available) is determined by the
         tool-chain for the specified target and platform (Some tool-chains default to
         -locatedprogram).  The use of -relprog can have unexpected results as it cannot
         always produce a fully relocated executable.
      -- Clarify use of CMAKE_BUILD_TYPE to control build configuration
      2ed2d6b4
    • Fred Baksik's avatar
      GHS: Update the top-level project generation · ead7117a
      Fred Baksik authored
      -- Sort targets by name
      -- Generate a top-level project for each project command named as project.top.gpj
         Use the target set for the current project instead of assuming all targets
      -- Add support for building projects not in binary root
      -- Directly create files and pass ostream
      -- Do no generate project files for UTILITY targets; this was never supported
      -- Do no generate project files for OBJECT, SHARED, or MODULE libraries; this was never supported
      -- Update GHS tags to support project types
         NOTE: The default tag is changed to "" because "[ ]" is an invalid token in project file
      ead7117a
    • Fred Baksik's avatar
      GHS: Cleanup how source files are listed · e7825386
      Fred Baksik authored
      -- Sort the items of the project files, previously they were unsorted
         The layout is similar to Visual Studio projects
      -- Do not make a make a tree of directories and projects files
         The main project file is in the binary folder
         The sub-project files are located in the project object directory
         This is similar to the Makefile generator
      -- Allow the creation of a single project file
         If the variable or target property GHS_NO_SOURCE_GROUP_FILE is set
         then all sources will be listed in the main project file
      e7825386
    • Fred Baksik's avatar
      GHS: Update binary structure so that install scripts work · 447b57a2
      Fred Baksik authored
      GHS doesn't follow the binary structure that VS or Makefiles use
      Also setting binary location outputs do not work
      
      -- Update to act like Visual Studio Generator and use its project layout
      -- Fix open/close issues where open() was used instead of Open()
         Now passes the file handle to all function that require it
      -- Avoid triggering MULTI reloads; use SetCopyIfDifferent mode
      447b57a2
    • Fred Baksik's avatar
    • Fred Baksik's avatar
      GHS: Update test suite · 5cef3c61
      Fred Baksik authored
      -- Update test suite so that CMake can use multiple toolsets
             CMake_TEST_GreenHillsMULTI_config
             ghs_config_name
             ghs_target_arch
             ghs_tools
             ghs_toolset_name
             ghs_os_root
             ghs_os_dir
             ghs_target_platform
             ghs_bsp_name
      
      -- Change ARM Integrity test to generic Integrity test
         Add Monolithic build test
      
      -- Add other GHS generator tests
      5cef3c61
    • Fred Baksik's avatar
      GHS: Only print bsp and os directives if specified by user · a42e40e7
      Fred Baksik authored
      -- standalone platforms will not build if bsp/os is specified in project file
      -- integrity platforms will always print these directives because they are required
      -- cleanup -os_dir setting
         allow customization of the actual setting because it is determined by tool-set customization files
         remove variable that was set but never used
      -- add message when using default values
      a42e40e7
    • Nils Gladitz's avatar
      VS: Add support for VS_DEBUGGER_* properties on custom targets · 22b43b00
      Nils Gladitz authored
      Visual studio itself supports the corresponding `LocalDebugger*`
      properties on utility targets; support generating them from CMake as
      well.
      22b43b00
    • Brad King's avatar
      Merge topic 'iar-avr' · c59eae7e
      Brad King authored
      270965e0 IAR: Update compiler modules to support AVR systems
      7414d422
      
       IAR: Parse INFO strings from the binary format of AVR systems
      Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
      Merge-request: !2792
      c59eae7e
    • Brad King's avatar
      Merge topic 'semi-warnings' · bd54cc77
      Brad King authored
      b056bc34
      
       Fix most clang -Wextra-semi-stmt warnings in C++ files
      Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
      Merge-request: !2795
      bd54cc77
    • Brad King's avatar
      Merge topic 'swift' · e2c39e05
      Brad King authored
      b90e6134
      
       Ninja: add new placeholder `SWIFT_AUXILIARY_SOURCES`
      Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
      Acked-by: Cristian Hancila's avatarCristian Hancila <chancila@gmail.com>
      Acked-by: Aaron Dierking's avatarAaron Dierking <aarondierking7@gmail.com>
      Merge-request: !2797
      e2c39e05
    • Brad King's avatar
      Merge topic 'autogen_adaptive_warning' · e44cc455
      Brad King authored
      5fe18eee Autogen: Adaptive missing Qt warning
      f2f16613 Autogen: Add and use QtAutoGen::Tools method
      b2343ff0
      
       Autogen: Fix rcc validity check
      Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
      Merge-request: !2806
      e44cc455
    • Brad King's avatar
      Merge topic 'support_per_toolset_json_flags' · a8b447d7
      Brad King authored
      c8ba777f
      
       GlobalVisualStudio10Generator: Support non-standard toolset json flag files.
      Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
      Merge-request: !2772
      a8b447d7
    • Brad King's avatar
      Merge topic 'messenger-no-cmake' · 68a30b50
      Brad King authored
      cc2a5261
      
       Factor out enum MessageType into dedicated header
      Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
      Merge-request: !2654
      68a30b50
    • bmanga's avatar
      Factor out enum MessageType into dedicated header · cc2a5261
      bmanga authored
      Reduce the number of files relying on `cmake.h`.
      cc2a5261