Re: [CMake] output of add_custom_command as target in Makefile

2015-06-12 Thread Nagy-Egri Máté Ferenc via CMake
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

2015-06-12 Thread Dave Yost
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

2015-06-12 Thread Glenn Coombs
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

2015-06-12 Thread Dave Yost
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

2015-06-11 Thread Dave Yost
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