Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • CMake CMake
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 4,168
    • Issues 4,168
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 16
    • Merge requests 16
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • External wiki
    • External wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • CMakeCMake
  • CMakeCMake
  • Issues
  • #22937
Closed
Open
Issue created Nov 21, 2021 by Craig Scott@craig.scottMaintainer

ENVIRONMENT_MODIFICATION uses host rather than target platform separator for path_list_... operations

The ENVIRONMENT_MODIFICATION test property added in CMake 3.22 supports path_list_append and path_list_prepend operations. The separator used for these is documented as "using the platform-specific list separator", but it doesn't specify whether the host or target platform is the determining factor. In a cross-compiling scenario where tests may be run with an emulator (see the CROSSCOMPILING_EMULATOR target property), this distinction could be important.

Looking at the implementation, the code uses a simple #ifdef WIN32, which means the host platform is what determines the separator. This seems questionable to me, it seems more likely that users would expect the target platform to be the determining factor. I don't know if it is already too late to change it, unless we consider this a bug rather than a behavior change. At the very least, we should clearly document which of the two is used.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking