Re: [CMake] output of add_custom_command as target in Makefile
You’re doing it all wrong. You do not name source files as make targets, but the target name (or project name, I have no idea, because it rarely makes sense to name them differently). Try simply “foo” or “custom-command-target”. You would never say “make foo.cpp”, not even in an ordinary GNU Make script. Feladó: Dave Yost Elküldve: péntek, 2015. június 12. 2:00 Címzett: cmake@cmake.org In this example, how do I get make foo.cc to work? 0 Thu 16:56:19 yost DaveBook ~/p/c++/cmake/custom-command-target 369 Z% bundle CMakeLists.txt genFoo #!/usr/bin/env unbundle # See http://yost.com/computers/bundle/ CMakeLists.txt cmake_minimum_required(VERSION 3.3.0) project(custom-command-target) add_custom_command ( OUTPUT foo.cc COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/genFoo foo.cc ) add_executable (foo foo.cc) genFoo #!/bin/bash echo int main() { return 0; } 0 Thu 16:56:23 yost DaveBook ~/p/c++/cmake/custom-command-target 370 Z% cd build 0 Thu 16:56:36 yost DaveBook ~/p/c++/cmake/custom-command-target/build 371 Z% cmake .. -- Configuring done -- Generating done -- Build files have been written to: /Users/yost/p/c++/cmake/custom-command-target/build 0 Thu 16:56:41 yost DaveBook ~/p/c++/cmake/custom-command-target/build 372 Z% make clean 0 Thu 16:56:45 yost DaveBook ~/p/c++/cmake/custom-command-target/build 373 Z% make foo.cc make: *** No rule to make target 'foo.cc'. Stop. 2 Thu 16:56:49 yost DaveBook ~/p/c++/cmake/custom-command-target/build 374 Z%-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
Re: [CMake] output of add_custom_command as target in Makefile
Hooray! Thanks! Could a future version of cmake provide a nicer way to do this, without these error messages? 0 Fri 12:29:25 yost DaveBook ~/p/c++/cmake/custom-command-target/build 391 Z% make foo.cc Scanning dependencies of target foo.cc make[3]: Circular CMakeFiles/foo.cc - foo.cc dependency dropped. make[3]: Circular foo.cc - foo.cc dependency dropped. [100%] Generating foo.cc [100%] Built target foo.cc 0 Fri 12:29:27 yost DaveBook ~/p/c++/cmake/custom-command-target/build 392 Z% On 2015-06-12, at 8:40 AM, Glenn Coombs glenn.coo...@gmail.com wrote: If you run make help it will list targets it understands. And as you pointed out there is no target for foo.cc. You can make foo but if you really want a target for foo.cc you can add one yourself: cmake_minimum_required(VERSION 3.0.0) project(custom-command-target) add_custom_command ( OUTPUT foo.cc COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/genFoo foo.cc ) add_custom_target(foo.cc DEPENDS ${CMAKE_BINARY_DIR}/foo.cc) add_executable (foo foo.cc) That should create a foo.cc target that you can run that will do the right thing. -- Glenn On 12 June 2015 at 14:20, Dave Yost d...@yost.com mailto:d...@yost.com wrote: I’m not doing it wrong. Remember, this is a simplified example. We want to be able to make foo.cc http://foo.cc/ so we can look at it and compare it. Yes, we could make foo and then look at foo.cc http://foo.cc/, but until foo.cc http://foo.cc/ is right, we will suffer a lot of compiler error clutter. When foo.cc http://foo.cc/ looks right, then we will make foo. BTW, changing add_custom_command to add_custom_target has no apparent effect and doesn’t help. On 2015-06-12, at 12:24 AM, Nagy-Egri Máté Ferenc csiga.b...@aol.com mailto:csiga.b...@aol.com wrote: You’re doing it all wrong. You do not name source files as make targets, but the target name (or project name, I have no idea, because it rarely makes sense to name them differently). Try simply “foo” or “custom-command-target”. You would never say “make foo.cpp”, not even in an ordinary GNU Make script. Feladó: Dave Yost mailto:d...@yost.com Elküldve: péntek, 2015. június 12. 2:00 Címzett: cmake@cmake.org mailto:cmake@cmake.org In this example, how do I get make foo.cc http://foo.cc/ to work? 0 Thu 16:56:19 yost DaveBook ~/p/c++/cmake/custom-command-target 369 Z% bundle CMakeLists.txt genFoo #!/usr/bin/env unbundle # See http://yost.com/computers/bundle/ http://yost.com/computers/bundle/ CMakeLists.txt cmake_minimum_required(VERSION 3.3.0) project(custom-command-target) add_custom_command ( OUTPUT foo.cc http://foo.cc/ COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/genFoo foo.cc http://foo.cc/ ) add_executable (foo foo.cc http://foo.cc/) genFoo #!/bin/bash echo int main() { return 0; } 0 Thu 16:56:23 yost DaveBook ~/p/c++/cmake/custom-command-target 370 Z% cd build 0 Thu 16:56:36 yost DaveBook ~/p/c++/cmake/custom-command-target/build 371 Z% cmake .. -- Configuring done -- Generating done -- Build files have been written to: /Users/yost/p/c++/cmake/custom-command-target/build 0 Thu 16:56:41 yost DaveBook ~/p/c++/cmake/custom-command-target/build 372 Z% make clean 0 Thu 16:56:45 yost DaveBook ~/p/c++/cmake/custom-command-target/build 373 Z% make foo.cc http://foo.cc/ make: *** No rule to make target 'foo.cc http://foo.cc/'. Stop. 2 Thu 16:56:49 yost DaveBook ~/p/c++/cmake/custom-command-target/build 374 Z% -- Powered by www.kitware.com http://www.kitware.com/ Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake http://public.kitware.com/mailman/listinfo/cmake -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake
Re: [CMake] output of add_custom_command as target in Makefile
If you run make help it will list targets it understands. And as you pointed out there is no target for foo.cc. You can make foo but if you really want a target for foo.cc you can add one yourself: cmake_minimum_required(VERSION 3.0.0) project(custom-command-target) add_custom_command ( OUTPUT foo.cc COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/genFoo foo.cc ) add_custom_target(foo.cc DEPENDS ${CMAKE_BINARY_DIR}/foo.cc) add_executable (foo foo.cc) That should create a foo.cc target that you can run that will do the right thing. -- Glenn On 12 June 2015 at 14:20, Dave Yost d...@yost.com wrote: I’m not doing it wrong. Remember, this is a simplified example. We want to be able to make foo.cc so we can look at it and compare it. Yes, we could make foo and then look at foo.cc, but until foo.cc is right, we will suffer a lot of compiler error clutter. When foo.cc looks right, then we will make foo. BTW, changing add_custom_command to add_custom_target has no apparent effect and doesn’t help. On 2015-06-12, at 12:24 AM, Nagy-Egri Máté Ferenc csiga.b...@aol.com wrote: You’re doing it all wrong. You do not name source files as make targets, but the target name (or project name, I have no idea, because it rarely makes sense to name them differently). Try simply “foo” or “custom-command-target”. You would never say “make foo.cpp”, not even in an ordinary GNU Make script. *Feladó:* Dave Yost d...@yost.com *Elküldve:* péntek, 2015. június 12. 2:00 *Címzett:* cmake@cmake.org In this example, how do I get make foo.cc to work? 0 Thu 16:56:19 yost DaveBook ~/p/c++/cmake/custom-command-target 369 Z% bundle CMakeLists.txt genFoo #!/usr/bin/env unbundle # See http://yost.com/computers/bundle/ CMakeLists.txt cmake_minimum_required(VERSION 3.3.0) project(custom-command-target) add_custom_command ( OUTPUT foo.cc COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/genFoo foo.cc ) add_executable (foo foo.cc) genFoo #!/bin/bash echo int main() { return 0; } 0 Thu 16:56:23 yost DaveBook ~/p/c++/cmake/custom-command-target 370 Z% cd build 0 Thu 16:56:36 yost DaveBook ~/p/c++/cmake/custom-command-target/build 371 Z% cmake .. -- Configuring done -- Generating done -- Build files have been written to: /Users/yost/p/c++/cmake/custom-command-target/build 0 Thu 16:56:41 yost DaveBook ~/p/c++/cmake/custom-command-target/build 372 Z% make clean 0 Thu 16:56:45 yost DaveBook ~/p/c++/cmake/custom-command-target/build 373 Z% make foo.cc make: *** No rule to make target 'foo.cc'. Stop. 2 Thu 16:56:49 yost DaveBook ~/p/c++/cmake/custom-command-target/build 374 Z% -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
Re: [CMake] output of add_custom_command as target in Makefile
I’m not doing it wrong. Remember, this is a simplified example. We want to be able to make foo.cc so we can look at it and compare it. Yes, we could make foo and then look at foo.cc, but until foo.cc is right, we will suffer a lot of compiler error clutter. When foo.cc looks right, then we will make foo. BTW, changing add_custom_command to add_custom_target has no apparent effect and doesn’t help. On 2015-06-12, at 12:24 AM, Nagy-Egri Máté Ferenc csiga.b...@aol.com wrote: You’re doing it all wrong. You do not name source files as make targets, but the target name (or project name, I have no idea, because it rarely makes sense to name them differently). Try simply “foo” or “custom-command-target”. You would never say “make foo.cpp”, not even in an ordinary GNU Make script. Feladó: Dave Yost mailto:d...@yost.com Elküldve: péntek, 2015. június 12. 2:00 Címzett: cmake@cmake.org mailto:cmake@cmake.org In this example, how do I get make foo.cc http://foo.cc/ to work? 0 Thu 16:56:19 yost DaveBook ~/p/c++/cmake/custom-command-target 369 Z% bundle CMakeLists.txt genFoo #!/usr/bin/env unbundle # See http://yost.com/computers/bundle/ http://yost.com/computers/bundle/ CMakeLists.txt cmake_minimum_required(VERSION 3.3.0) project(custom-command-target) add_custom_command ( OUTPUT foo.cc http://foo.cc/ COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/genFoo foo.cc http://foo.cc/ ) add_executable (foo foo.cc http://foo.cc/) genFoo #!/bin/bash echo int main() { return 0; } 0 Thu 16:56:23 yost DaveBook ~/p/c++/cmake/custom-command-target 370 Z% cd build 0 Thu 16:56:36 yost DaveBook ~/p/c++/cmake/custom-command-target/build 371 Z% cmake .. -- Configuring done -- Generating done -- Build files have been written to: /Users/yost/p/c++/cmake/custom-command-target/build 0 Thu 16:56:41 yost DaveBook ~/p/c++/cmake/custom-command-target/build 372 Z% make clean 0 Thu 16:56:45 yost DaveBook ~/p/c++/cmake/custom-command-target/build 373 Z% make foo.cc http://foo.cc/ make: *** No rule to make target 'foo.cc http://foo.cc/'. Stop. 2 Thu 16:56:49 yost DaveBook ~/p/c++/cmake/custom-command-target/build 374 Z% -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
[CMake] output of add_custom_command as target in Makefile
In this example, how do I get make foo.cc to work? 0 Thu 16:56:19 yost DaveBook ~/p/c++/cmake/custom-command-target 369 Z% bundle CMakeLists.txt genFoo #!/usr/bin/env unbundle # See http://yost.com/computers/bundle/ CMakeLists.txt cmake_minimum_required(VERSION 3.3.0) project(custom-command-target) add_custom_command ( OUTPUT foo.cc COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/genFoo foo.cc ) add_executable (foo foo.cc) genFoo #!/bin/bash echo int main() { return 0; } 0 Thu 16:56:23 yost DaveBook ~/p/c++/cmake/custom-command-target 370 Z% cd build 0 Thu 16:56:36 yost DaveBook ~/p/c++/cmake/custom-command-target/build 371 Z% cmake .. -- Configuring done -- Generating done -- Build files have been written to: /Users/yost/p/c++/cmake/custom-command-target/build 0 Thu 16:56:41 yost DaveBook ~/p/c++/cmake/custom-command-target/build 372 Z% make clean 0 Thu 16:56:45 yost DaveBook ~/p/c++/cmake/custom-command-target/build 373 Z% make foo.cc make: *** No rule to make target 'foo.cc'. Stop. 2 Thu 16:56:49 yost DaveBook ~/p/c++/cmake/custom-command-target/build 374 Z% -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake