Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using Ninja generator fails with bad $-escape #83

Closed
diegoferigo opened this issue Jun 11, 2018 · 10 comments · Fixed by robotology/ycm-cmake-modules#456 or #1688
Closed

Using Ninja generator fails with bad $-escape #83

diegoferigo opened this issue Jun 11, 2018 · 10 comments · Fixed by robotology/ycm-cmake-modules#456 or #1688

Comments

@diegoferigo
Copy link
Member

diegoferigo commented Jun 11, 2018

The full error is the following:

$ cmake --build .
ninja: error: build.ninja:477: bad $-escape (literal $ must be written as $$)

The error is generated by variables such as $(COLOR) which should be $$(COLOR) or ${COLOR}. This issue is just a reminder if any of you encounter this issue.

Follow the upstream issue at https://gitlab.kitware.com/cmake/cmake/issues/18062.

cc @drdanz do you have any further insight on this? I'm not expert on these CMake edges.

@traversaro
Copy link
Member

CMake and ninja version?

@diegoferigo
Copy link
Member Author

Ubuntu 18:04 default:

  • CMake 3.10.2
  • Ninja 1.8.2

@traversaro
Copy link
Member

If YCM is bootstrapped, apparently the ninja build also fails with the following error:

FAILED: robotology/YCM/CMakeFiles/YCMStamp/YCM-configure 
cd /home/straversaro/src/robotology-superbuild/build/robotology/YCM && /usr/bin/cmake --no-warn-unused-cli "-DCMAKE_PREFIX_PATH:PATH=/home/straversaro/src/robotology-superbuild/build/install;/home/straversaro/src/idjl-software/build/install" -C/home/straversaro/src/robotology-superbuild/build/robotology/YCM/CMakeFiles/YCMTmp/YCM-cache-Release.cmake -GNinja /home/straversaro/src/robotology-superbuild/robotology/YCM && /usr/bin/cmake -E touch /home/straversaro/src/robotology-superbuild/build/robotology/YCM/CMakeFiles/YCMStamp/YCM-configure
Not searching for unused variables given on the command line.
loading initial cache file /home/straversaro/src/robotology-superbuild/build/robotology/YCM/CMakeFiles/YCMTmp/YCM-cache-Release.cmake
CMake Error: Error: generator : Ninja
Does not match the generator used previously: Unix Makefiles
Either remove the CMakeCache.txt file and CMakeFiles directory or choose a different binary directory.

@fbiazin
Copy link

fbiazin commented Jan 10, 2020

FIY: I was able to compile with ninja when, after the error, I went to the directory where Gentoo put the related files and replaced all instances of $ with $$ on the file build.ninja

I don't know the proccess that generate this file, I just saw that it was used to write some parameters and replaced it. I also don't know anything about YCM.

The ebuild (file that controls building on Gentoo) was from 2018 and the directory of the file was /var/tmp/portage/games-engines/devilutionx-9999/work/devilutionx-9999_build then I used the command ebuilt with compile, install and qmerge to continue from where the error happened.

@traversaro
Copy link
Member

If YCM is bootstrapped, apparently the ninja build also fails with the following error:

FAILED: robotology/YCM/CMakeFiles/YCMStamp/YCM-configure 
cd /home/straversaro/src/robotology-superbuild/build/robotology/YCM && /usr/bin/cmake --no-warn-unused-cli "-DCMAKE_PREFIX_PATH:PATH=/home/straversaro/src/robotology-superbuild/build/install;/home/straversaro/src/idjl-software/build/install" -C/home/straversaro/src/robotology-superbuild/build/robotology/YCM/CMakeFiles/YCMTmp/YCM-cache-Release.cmake -GNinja /home/straversaro/src/robotology-superbuild/robotology/YCM && /usr/bin/cmake -E touch /home/straversaro/src/robotology-superbuild/build/robotology/YCM/CMakeFiles/YCMStamp/YCM-configure
Not searching for unused variables given on the command line.
loading initial cache file /home/straversaro/src/robotology-superbuild/build/robotology/YCM/CMakeFiles/YCMTmp/YCM-cache-Release.cmake
CMake Error: Error: generator : Ninja
Does not match the generator used previously: Unix Makefiles
Either remove the CMakeCache.txt file and CMakeFiles directory or choose a different binary directory.

This problem was actually similar to #265, and that was fixed by #276 .

However, I am not sure this is related at all with the original issue reported by @diegoferigo .

However, @diegoferigo are you still experiencing this error? We currently have CI jobs that use Ninja with no problems, so unless there is a way to reproduce this error, I would not know how to tackle it.

@diegoferigo
Copy link
Member Author

diegoferigo commented Apr 26, 2020

Nope, I'm not seeing this error since a while now (the first post is 2y+ old). I think we can close this issue and reopen it if the problem shows up again in the future.

@giotherobot
Copy link
Contributor

This problem resurfaced while trying a fresh superbuild on my laptop and building with VSCode (which uses ninja as defauls instead of unix makefiles).

This seems related to enabling any of the YCM_EP_DEVEL_MODE_ flags, when none of these are are active the build finshes successfully.

@traversaro
Copy link
Member

Related issue: ninja-build/ninja#1923 .

I replicated the issue locally by setting YCM_EP_DEVEL_MODE_ICUB:

CMake Error:
  Running

   '/home/traversaro/robotology-superbuild/.pixi/envs/default/bin/ninja' '-C' '/home/traversaro/robotology-superbuild/.build' '-t' 'recompact'

  failed with:

   ninja: error: build.ninja:1114: bad $-escape (literal $ must be written as $$)

This is the diff in the build.ninja when the YCM_EP_DEVEL_MODE_ICUB option is enabled:

(robotology-superbuild) traversaro@IITBMP014LW012:~/robotology-superbuild/.build$ diff build.ninja buildnotworking.ninja
221c221
< build update-all: phony ICUB-update ICUBcontrib-update YARP-update YCM-update ergocub-software-update gz-sim-yarp-plugins-update icub-models-update robots-configuration-update yarp-devices-ros-update
---
> build update-all: phony ICUBcontrib-update YARP-update YCM-update ergocub-software-update gz-sim-yarp-plugins-update icub-models-update robots-configuration-update yarp-devices-ros-update
275c275
< build ICUB: phony CMakeFiles/ICUB CMakeFiles/ICUB-complete src/ICUB/CMakeFiles/YCMStamp/ICUB-done src/ICUB/CMakeFiles/YCMStamp/ICUB-build src/ICUB/CMakeFiles/YCMStamp/ICUB-configure src/ICUB/CMakeFiles/YCMStamp/ICUB-download src/ICUB/CMakeFiles/YCMStamp/ICUB-install src/ICUB/CMakeFiles/YCMStamp/ICUB-mkdir src/ICUB/CMakeFiles/YCMStamp/ICUB-patch_disconnected src/ICUB/CMakeFiles/YCMStamp/ICUB-update_disconnected CMakeFiles/YARP-complete src/YARP/CMakeFiles/YCMStamp/YARP-done CMakeFiles/YCM-complete src/YCM/CMakeFiles/YCMStamp/YCM-done src/YARP/CMakeFiles/YCMStamp/YARP-build src/YARP/CMakeFiles/YCMStamp/YARP-configure src/YARP/CMakeFiles/YCMStamp/YARP-download src/YARP/CMakeFiles/YCMStamp/YARP-install src/YARP/CMakeFiles/YCMStamp/YARP-mkdir src/YARP/CMakeFiles/YCMStamp/YARP-patch_disconnected src/YARP/CMakeFiles/YCMStamp/YARP-update_disconnected src/YCM/CMakeFiles/YCMStamp/YCM-build src/YCM/CMakeFiles/YCMStamp/YCM-configure src/YCM/CMakeFiles/YCMStamp/YCM-download src/YCM/CMakeFiles/YCMStamp/YCM-install src/YCM/CMakeFiles/YCMStamp/YCM-mkdir src/YCM/CMakeFiles/YCMStamp/YCM-patch_disconnected src/YCM/CMakeFiles/YCMStamp/YCM-update_disconnected ICUB-download YARP YCM
---
> build ICUB: phony CMakeFiles/ICUB CMakeFiles/ICUB-complete src/ICUB/CMakeFiles/YCMStamp/ICUB-done src/ICUB/CMakeFiles/YCMStamp/ICUB-build src/ICUB/CMakeFiles/YCMStamp/ICUB-configure src/ICUB/CMakeFiles/YCMStamp/ICUB-download src/ICUB/CMakeFiles/YCMStamp/ICUB-install src/ICUB/CMakeFiles/YCMStamp/ICUB-mkdir src/ICUB/CMakeFiles/YCMStamp/ICUB-patch_disconnected src/ICUB/CMakeFiles/YCMStamp/ICUB-update_disconnected CMakeFiles/YARP-complete src/YARP/CMakeFiles/YCMStamp/YARP-done CMakeFiles/YCM-complete src/YCM/CMakeFiles/YCMStamp/YCM-done src/YARP/CMakeFiles/YCMStamp/YARP-build src/YARP/CMakeFiles/YCMStamp/YARP-configure src/YARP/CMakeFiles/YCMStamp/YARP-download src/YARP/CMakeFiles/YCMStamp/YARP-install src/YARP/CMakeFiles/YCMStamp/YARP-mkdir src/YARP/CMakeFiles/YCMStamp/YARP-patch_disconnected src/YARP/CMakeFiles/YCMStamp/YARP-update_disconnected src/YCM/CMakeFiles/YCMStamp/YCM-build src/YCM/CMakeFiles/YCMStamp/YCM-configure src/YCM/CMakeFiles/YCMStamp/YCM-download src/YCM/CMakeFiles/YCMStamp/YCM-install src/YCM/CMakeFiles/YCMStamp/YCM-mkdir src/YCM/CMakeFiles/YCMStamp/YCM-patch_disconnected src/YCM/CMakeFiles/YCMStamp/YCM-update_disconnected ICUB-configure ICUB-download YARP YCM
279c279
< # Utility command for ICUB-update
---
> # Utility command for ICUB-configure
281c281
< build ICUB-update: phony CMakeFiles/ICUB-update src/ICUB/CMakeFiles/YCMStamp/ICUB-update src/ICUB/CMakeFiles/YCMStamp/ICUB-download src/ICUB/CMakeFiles/YCMStamp/ICUB-mkdir ICUB-download
---
> build ICUB-configure: phony CMakeFiles/ICUB-configure src/ICUB/CMakeFiles/YCMStamp/ICUB-configure src/ICUB/CMakeFiles/YCMStamp/ICUB-patch_disconnected CMakeFiles/YARP-complete src/YARP/CMakeFiles/YCMStamp/YARP-done CMakeFiles/YCM-complete src/YCM/CMakeFiles/YCMStamp/YCM-done src/ICUB/CMakeFiles/YCMStamp/ICUB-update_disconnected src/YARP/CMakeFiles/YCMStamp/YARP-build src/YARP/CMakeFiles/YCMStamp/YARP-configure src/YARP/CMakeFiles/YCMStamp/YARP-download src/YARP/CMakeFiles/YCMStamp/YARP-install src/YARP/CMakeFiles/YCMStamp/YARP-mkdir src/YARP/CMakeFiles/YCMStamp/YARP-patch_disconnected src/YARP/CMakeFiles/YCMStamp/YARP-update_disconnected src/YCM/CMakeFiles/YCMStamp/YCM-build src/YCM/CMakeFiles/YCMStamp/YCM-configure src/YCM/CMakeFiles/YCMStamp/YCM-download src/YCM/CMakeFiles/YCMStamp/YCM-install src/YCM/CMakeFiles/YCMStamp/YCM-mkdir src/YCM/CMakeFiles/YCMStamp/YCM-patch_disconnected src/YCM/CMakeFiles/YCMStamp/YCM-update_disconnected src/ICUB/CMakeFiles/YCMStamp/ICUB-download src/ICUB/CMakeFiles/YCMStamp/ICUB-mkdir ICUB-download YARP YCM
290a291,356
> # Utility command for fetch-all
>
> build fetch-all: phony ICUB-fetch
>
>
> #############################################
> # Utility command for ICUB-fetch
>
> build ICUB-fetch: phony CMakeFiles/ICUB-fetch src/ICUB/CMakeFiles/YCMStamp/ICUB-fetch src/ICUB/CMakeFiles/YCMStamp/ICUB-download src/ICUB/CMakeFiles/YCMStamp/ICUB-mkdir ICUB-download YARP YCM
>
>
> #############################################
> # Utility command for status-all
>
> build status-all: phony ICUB-status
>
>
> #############################################
> # Utility command for ICUB-status
>
> build ICUB-status: phony CMakeFiles/ICUB-status src/ICUB/CMakeFiles/YCMStamp/ICUB-status src/ICUB/CMakeFiles/YCMStamp/ICUB-download src/ICUB/CMakeFiles/YCMStamp/ICUB-mkdir ICUB-download YARP YCM
>
>
> #############################################
> # Utility command for clean-all
>
> build clean-all: phony ICUB-clean
>
>
> #############################################
> # Utility command for ICUB-clean
>
> build ICUB-clean: phony CMakeFiles/ICUB-clean src/ICUB/CMakeFiles/YCMStamp/ICUB-clean src/ICUB/CMakeFiles/YCMStamp/ICUB-configure src/ICUB/CMakeFiles/YCMStamp/ICUB-patch_disconnected CMakeFiles/YARP-complete src/YARP/CMakeFiles/YCMStamp/YARP-done CMakeFiles/YCM-complete src/YCM/CMakeFiles/YCMStamp/YCM-done src/ICUB/CMakeFiles/YCMStamp/ICUB-update_disconnected src/YARP/CMakeFiles/YCMStamp/YARP-build src/YARP/CMakeFiles/YCMStamp/YARP-configure src/YARP/CMakeFiles/YCMStamp/YARP-download src/YARP/CMakeFiles/YCMStamp/YARP-install src/YARP/CMakeFiles/YCMStamp/YARP-mkdir src/YARP/CMakeFiles/YCMStamp/YARP-patch_disconnected src/YARP/CMakeFiles/YCMStamp/YARP-update_disconnected src/YCM/CMakeFiles/YCMStamp/YCM-build src/YCM/CMakeFiles/YCMStamp/YCM-configure src/YCM/CMakeFiles/YCMStamp/YCM-download src/YCM/CMakeFiles/YCMStamp/YCM-install src/YCM/CMakeFiles/YCMStamp/YCM-mkdir src/YCM/CMakeFiles/YCMStamp/YCM-patch_disconnected src/YCM/CMakeFiles/YCMStamp/YCM-update_disconnected src/ICUB/CMakeFiles/YCMStamp/ICUB-download src/ICUB/CMakeFiles/YCMStamp/ICUB-mkdir ICUB-configure YARP YCM
>
>
> #############################################
> # Utility command for ICUB-edit_cache
>
> build ICUB-edit_cache: phony CMakeFiles/ICUB-edit_cache src/ICUB/CMakeFiles/YCMStamp/ICUB-edit_cache src/ICUB/CMakeFiles/YCMStamp/ICUB-configure src/ICUB/CMakeFiles/YCMStamp/ICUB-patch_disconnected CMakeFiles/YARP-complete src/YARP/CMakeFiles/YCMStamp/YARP-done CMakeFiles/YCM-complete src/YCM/CMakeFiles/YCMStamp/YCM-done src/ICUB/CMakeFiles/YCMStamp/ICUB-update_disconnected src/YARP/CMakeFiles/YCMStamp/YARP-build src/YARP/CMakeFiles/YCMStamp/YARP-configure src/YARP/CMakeFiles/YCMStamp/YARP-download src/YARP/CMakeFiles/YCMStamp/YARP-install src/YARP/CMakeFiles/YCMStamp/YARP-mkdir src/YARP/CMakeFiles/YCMStamp/YARP-patch_disconnected src/YARP/CMakeFiles/YCMStamp/YARP-update_disconnected src/YCM/CMakeFiles/YCMStamp/YCM-build src/YCM/CMakeFiles/YCMStamp/YCM-configure src/YCM/CMakeFiles/YCMStamp/YCM-download src/YCM/CMakeFiles/YCMStamp/YCM-install src/YCM/CMakeFiles/YCMStamp/YCM-mkdir src/YCM/CMakeFiles/YCMStamp/YCM-patch_disconnected src/YCM/CMakeFiles/YCMStamp/YCM-update_disconnected src/ICUB/CMakeFiles/YCMStamp/ICUB-download src/ICUB/CMakeFiles/YCMStamp/ICUB-mkdir ICUB-configure YARP YCM
>
>
> #############################################
> # Utility command for print-directories-all
>
> build print-directories-all: phony ICUB-print-directories
>
>
> #############################################
> # Utility command for ICUB-print-directories
>
> build ICUB-print-directories: phony CMakeFiles/ICUB-print-directories src/ICUB/CMakeFiles/YCMStamp/ICUB-print-directories YARP YCM
>
>
> #############################################
> # Utility command for ICUB-dependees
>
> build ICUB-dependees: phony CMakeFiles/ICUB-dependees src/ICUB/CMakeFiles/YCMStamp/ICUB-dependees YARP YCM
>
>
> #############################################
> # Utility command for ICUB-dependees-update
>
> build ICUB-dependees-update: phony CMakeFiles/ICUB-dependees-update src/ICUB/CMakeFiles/YCMStamp/ICUB-dependees-update YARP YARP-update YCM YCM-update
>
>
> #############################################
937c1003
< build CMakeFiles/ICUB | ${cmake_ninja_workdir}CMakeFiles/ICUB: phony CMakeFiles/ICUB-complete || ICUB-download YARP YARP-download YCM YCM-download
---
> build CMakeFiles/ICUB | ${cmake_ninja_workdir}CMakeFiles/ICUB: phony CMakeFiles/ICUB-complete || ICUB-configure ICUB-download YARP YARP-download YCM YCM-download
943c1009
< build CMakeFiles/ICUB-complete src/ICUB/CMakeFiles/YCMStamp/ICUB-done | ${cmake_ninja_workdir}CMakeFiles/ICUB-complete ${cmake_ninja_workdir}src/ICUB/CMakeFiles/YCMStamp/ICUB-done: CUSTOM_COMMAND src/ICUB/CMakeFiles/YCMStamp/ICUB-install src/ICUB/CMakeFiles/YCMStamp/ICUB-mkdir src/ICUB/CMakeFiles/YCMStamp/ICUB-download src/ICUB/CMakeFiles/YCMStamp/ICUB-update_disconnected src/ICUB/CMakeFiles/YCMStamp/ICUB-patch_disconnected src/ICUB/CMakeFiles/YCMStamp/ICUB-configure src/ICUB/CMakeFiles/YCMStamp/ICUB-build src/ICUB/CMakeFiles/YCMStamp/ICUB-install || ICUB-download YARP YARP-download YCM YCM-download
---
> build CMakeFiles/ICUB-complete src/ICUB/CMakeFiles/YCMStamp/ICUB-done | ${cmake_ninja_workdir}CMakeFiles/ICUB-complete ${cmake_ninja_workdir}src/ICUB/CMakeFiles/YCMStamp/ICUB-done: CUSTOM_COMMAND src/ICUB/CMakeFiles/YCMStamp/ICUB-install src/ICUB/CMakeFiles/YCMStamp/ICUB-mkdir src/ICUB/CMakeFiles/YCMStamp/ICUB-download src/ICUB/CMakeFiles/YCMStamp/ICUB-update_disconnected src/ICUB/CMakeFiles/YCMStamp/ICUB-patch_disconnected src/ICUB/CMakeFiles/YCMStamp/ICUB-configure src/ICUB/CMakeFiles/YCMStamp/ICUB-build src/ICUB/CMakeFiles/YCMStamp/ICUB-install || ICUB-configure ICUB-download YARP YARP-download YCM YCM-download
952c1018
< build src/ICUB/CMakeFiles/YCMStamp/ICUB-build | ${cmake_ninja_workdir}src/ICUB/CMakeFiles/YCMStamp/ICUB-build: CUSTOM_COMMAND src/ICUB/CMakeFiles/YCMStamp/ICUB-configure || ICUB-download YARP YARP-download YCM YCM-download
---
> build src/ICUB/CMakeFiles/YCMStamp/ICUB-build | ${cmake_ninja_workdir}src/ICUB/CMakeFiles/YCMStamp/ICUB-build: CUSTOM_COMMAND src/ICUB/CMakeFiles/YCMStamp/ICUB-configure || ICUB-configure ICUB-download YARP YARP-download YCM YCM-download
979c1045
< build src/ICUB/CMakeFiles/YCMStamp/ICUB-install | ${cmake_ninja_workdir}src/ICUB/CMakeFiles/YCMStamp/ICUB-install: CUSTOM_COMMAND src/ICUB/CMakeFiles/YCMStamp/ICUB-build || ICUB-download YARP YARP-download YCM YCM-download
---
> build src/ICUB/CMakeFiles/YCMStamp/ICUB-install | ${cmake_ninja_workdir}src/ICUB/CMakeFiles/YCMStamp/ICUB-install: CUSTOM_COMMAND src/ICUB/CMakeFiles/YCMStamp/ICUB-build || ICUB-configure ICUB-download YARP YARP-download YCM YCM-download
1013c1079
< # Phony custom command for CMakeFiles/ICUB-update
---
> # Phony custom command for CMakeFiles/ICUB-configure
1015c1081
< build CMakeFiles/ICUB-update | ${cmake_ninja_workdir}CMakeFiles/ICUB-update: phony src/ICUB/CMakeFiles/YCMStamp/ICUB-update || ICUB-download
---
> build CMakeFiles/ICUB-configure | ${cmake_ninja_workdir}CMakeFiles/ICUB-configure: phony src/ICUB/CMakeFiles/YCMStamp/ICUB-configure || ICUB-download YARP YARP-download YCM YCM-download
1019c1085
< # Custom command for src/ICUB/CMakeFiles/YCMStamp/ICUB-update
---
> # Phony custom command for CMakeFiles/ICUB-download
1021,1023c1087
< build src/ICUB/CMakeFiles/YCMStamp/ICUB-update | ${cmake_ninja_workdir}src/ICUB/CMakeFiles/YCMStamp/ICUB-update: CUSTOM_COMMAND src/ICUB/CMakeFiles/YCMTmp/ICUB-gitupdate.cmake src/ICUB/CMakeFiles/YCMStamp/ICUB-update-info.txt src/ICUB/CMakeFiles/YCMStamp/ICUB-download || ICUB-download
<   COMMAND = cd /home/traversaro/robotology-superbuild/src/ICUB && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -Dcan_fetch=YES -DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE -P /home/traversaro/robotology-superbuild/.build/src/ICUB/CMakeFiles/YCMTmp/ICUB-gitupdate.cmake
<   DESC = Performing update step for 'ICUB'
---
> build CMakeFiles/ICUB-download | ${cmake_ninja_workdir}CMakeFiles/ICUB-download: phony src/ICUB/CMakeFiles/YCMStamp/ICUB-download
1027c1091
< # Phony custom command for CMakeFiles/ICUB-download
---
> # Phony custom command for CMakeFiles/ICUB-fetch
1029c1093,1185
< build CMakeFiles/ICUB-download | ${cmake_ninja_workdir}CMakeFiles/ICUB-download: phony src/ICUB/CMakeFiles/YCMStamp/ICUB-download
---
> build CMakeFiles/ICUB-fetch | ${cmake_ninja_workdir}CMakeFiles/ICUB-fetch: phony src/ICUB/CMakeFiles/YCMStamp/ICUB-fetch || ICUB-download YARP YARP-download YCM YCM-download
>
>
> #############################################
> # Custom command for src/ICUB/CMakeFiles/YCMStamp/ICUB-fetch
>
> build src/ICUB/CMakeFiles/YCMStamp/ICUB-fetch | ${cmake_ninja_workdir}src/ICUB/CMakeFiles/YCMStamp/ICUB-fetch: CUSTOM_COMMAND src/ICUB/CMakeFiles/YCMStamp/ICUB-download || ICUB-download YARP YARP-download YCM YCM-download
>   COMMAND = cd /home/traversaro/robotology-superbuild/src/ICUB && /usr/bin/git fetch --all --prune
>   DESC = Performing fetch step for 'ICUB'
>
>
> #############################################
> # Phony custom command for CMakeFiles/ICUB-status
>
> build CMakeFiles/ICUB-status | ${cmake_ninja_workdir}CMakeFiles/ICUB-status: phony src/ICUB/CMakeFiles/YCMStamp/ICUB-status || ICUB-download YARP YARP-download YCM YCM-download
>
>
> #############################################
> # Custom command for src/ICUB/CMakeFiles/YCMStamp/ICUB-status
>
> build src/ICUB/CMakeFiles/YCMStamp/ICUB-status | ${cmake_ninja_workdir}src/ICUB/CMakeFiles/YCMStamp/ICUB-status: CUSTOM_COMMAND src/ICUB/CMakeFiles/YCMStamp/ICUB-download || ICUB-download YARP YARP-download YCM YCM-download
>   COMMAND = cd /home/traversaro/robotology-superbuild/src/ICUB && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E cmake_echo_color --switch=$(COLOR) --cyan "Working directory: /home/traversaro/robotology-superbuild/src/ICUB" && /usr/bin/git status
>   DESC = Performing status step for 'ICUB'
>
>
> #############################################
> # Phony custom command for CMakeFiles/ICUB-clean
>
> build CMakeFiles/ICUB-clean | ${cmake_ninja_workdir}CMakeFiles/ICUB-clean: phony src/ICUB/CMakeFiles/YCMStamp/ICUB-clean || ICUB-configure ICUB-download YARP YARP-download YCM YCM-download
>
>
> #############################################
> # Custom command for src/ICUB/CMakeFiles/YCMStamp/ICUB-clean
>
> build src/ICUB/CMakeFiles/YCMStamp/ICUB-clean | ${cmake_ninja_workdir}src/ICUB/CMakeFiles/YCMStamp/ICUB-clean: CUSTOM_COMMAND src/ICUB/CMakeFiles/YCMStamp/ICUB-configure || ICUB-configure ICUB-download YARP YARP-download YCM YCM-download
>   COMMAND = cd /home/traversaro/robotology-superbuild/.build/src/ICUB && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake --build /home/traversaro/robotology-superbuild/.build/src/ICUB --config . --target clean
>   DESC = Performing clean step for 'ICUB'
>
>
> #############################################
> # Phony custom command for CMakeFiles/ICUB-edit_cache
>
> build CMakeFiles/ICUB-edit_cache | ${cmake_ninja_workdir}CMakeFiles/ICUB-edit_cache: phony src/ICUB/CMakeFiles/YCMStamp/ICUB-edit_cache || ICUB-configure ICUB-download YARP YARP-download YCM YCM-download
>
>
> #############################################
> # Custom command for src/ICUB/CMakeFiles/YCMStamp/ICUB-edit_cache
>
> build src/ICUB/CMakeFiles/YCMStamp/ICUB-edit_cache | ${cmake_ninja_workdir}src/ICUB/CMakeFiles/YCMStamp/ICUB-edit_cache: CUSTOM_COMMAND src/ICUB/CMakeFiles/YCMStamp/ICUB-configure || ICUB-configure ICUB-download YARP YARP-download YCM YCM-download
>   COMMAND = cd /home/traversaro/robotology-superbuild/.build/src/ICUB && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/ccmake -H/home/traversaro/robotology-superbuild/src/ICUB -B/home/traversaro/robotology-superbuild/.build/src/ICUB
>   DESC = Running CMake cache editor for ICUB...
>
>
> #############################################
> # Phony custom command for CMakeFiles/ICUB-print-directories
>
> build CMakeFiles/ICUB-print-directories | ${cmake_ninja_workdir}CMakeFiles/ICUB-print-directories: phony src/ICUB/CMakeFiles/YCMStamp/ICUB-print-directories || YARP YARP-download YCM YCM-download
>
>
> #############################################
> # Custom command for src/ICUB/CMakeFiles/YCMStamp/ICUB-print-directories
>
> build src/ICUB/CMakeFiles/YCMStamp/ICUB-print-directories | ${cmake_ninja_workdir}src/ICUB/CMakeFiles/YCMStamp/ICUB-print-directories: CUSTOM_COMMAND || YARP YARP-download YCM YCM-download
>   COMMAND = cd /home/traversaro/robotology-superbuild/src/ICUB && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo "" && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E cmake_echo_color --switch=$(COLOR) --cyan "ICUB REPOSITORY directory: " && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo "    /home/traversaro/robotology-superbuild/src/ICUB" && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E cmake_echo_color --switch=$(COLOR) --cyan "ICUB SOURCE directory: " && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo "    " && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo "" && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E cmake_echo_color --switch=$(COLOR) --cyan "ICUB BINARY directory: " && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo "    /home/traversaro/robotology-superbuild/.build/src/ICUB" && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo ""
>   DESC = Directories for ICUB
>
>
> #############################################
> # Phony custom command for CMakeFiles/ICUB-dependees
>
> build CMakeFiles/ICUB-dependees | ${cmake_ninja_workdir}CMakeFiles/ICUB-dependees: phony src/ICUB/CMakeFiles/YCMStamp/ICUB-dependees || YARP YARP-download YCM YCM-download
>
>
> #############################################
> # Custom command for src/ICUB/CMakeFiles/YCMStamp/ICUB-dependees
>
> build src/ICUB/CMakeFiles/YCMStamp/ICUB-dependees | ${cmake_ninja_workdir}src/ICUB/CMakeFiles/YCMStamp/ICUB-dependees: CUSTOM_COMMAND || YARP YARP-download YCM YCM-download
>   COMMAND = cd /home/traversaro/robotology-superbuild/.build/src/ICUB && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo_append
>   DESC = Dependencies for 'ICUB' built.
>
>
> #############################################
> # Phony custom command for CMakeFiles/ICUB-dependees-update
>
> build CMakeFiles/ICUB-dependees-update | ${cmake_ninja_workdir}CMakeFiles/ICUB-dependees-update: phony src/ICUB/CMakeFiles/YCMStamp/ICUB-dependees-update || YARP YARP-download YARP-update YCM YCM-download YCM-update
>
>
> #############################################
> # Custom command for src/ICUB/CMakeFiles/YCMStamp/ICUB-dependees-update
>
> build src/ICUB/CMakeFiles/YCMStamp/ICUB-dependees-update | ${cmake_ninja_workdir}src/ICUB/CMakeFiles/YCMStamp/ICUB-dependees-update: CUSTOM_COMMAND || YARP YARP-download YARP-update YCM YCM-download YCM-update
>   COMMAND = cd /home/traversaro/robotology-superbuild/.build && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo_append
>   DESC = Dependencies for 'ICUB' updated.

@traversaro
Copy link
Member

The problematic parts are the --switch=$(COLOR) arguments passed to CMake by ninja:

>   COMMAND = cd /home/traversaro/robotology-superbuild/src/ICUB && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E cmake_echo_color --switch=$(COLOR) --cyan "Working directory: /home/traversaro/robotology-superbuild/src/ICUB" && /usr/bin/git status
>   COMMAND = cd /home/traversaro/robotology-superbuild/src/ICUB && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo "" && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E cmake_echo_color --switch=$(COLOR) --cyan "ICUB REPOSITORY directory: " && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo "    /home/traversaro/robotology-superbuild/src/ICUB" && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E cmake_echo_color --switch=$(COLOR) --cyan "ICUB SOURCE directory: " && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo "    " && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo "" && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E cmake_echo_color --switch=$(COLOR) --cyan "ICUB BINARY directory: " && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo "    /home/traversaro/robotology-superbuild/.build/src/ICUB" && /home/traversaro/robotology-superbuild/.pixi/envs/default/bin/cmake -E echo ""

@traversaro
Copy link
Member

A fix for this is provided in robotology/ycm-cmake-modules#456 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants