So ,
I just discovered the solution:
macro ( build_sample_cpp_file project cpp_file )
GET_FILENAME_COMPONENT( tmp_cpp_file ${cpp_file} NAME )
STRING(REGEX REPLACE "\\.cpp$" "" binary_name ${tmp_cpp_file})
ADD_EXECUTABLE( "${project}_${binary_name}" ${cpp_file} )
SET_TARGET_PROPERTIES( "${project}_${binary_name}" PROPERTIES
OUTPUT_NAME ${binary_name} )
TARGET_LINK_LIBRARIES( "${project}_${binary_name}" ${LINK_LIBS} )
endmacro ( build_sample_cpp_file )
Created an elongated name for the full target name and then specified
the OUTPUT_NAME to be the shortened name,
On 10/03/2013 11:24 AM, Jimi Damon wrote:
Hi,
I have a number of directories that are named according to an
acquisition board in our full product line. Under each directory
there are sample programs labeled "sample1.c", "sample2.c" ...etc.
While this isn't a very useful naming convention, I ran into the
problem of when I migrated the current GNU makefile based system over
to CMAKE, I tried to create a structure like the following
add_subdirectory( samples/Product1 )
add_subdirectory( samples/Product2 )
What happens is that I get the error saying
* add_executable cannot create target "sample" because another target with
the same name already exists. The existing target is an executable
created
in source directory*
What I was trying to get is a namespace encapsulated sample, such that
I would have to issue a
make samples/Product1/sample1 in order to build that sample.
Is there a way to prevent these namespace collisions other than just
renaming every single executable to have a unique name ? I want to
know the correct answer to this because I have a feeling that in the
future I won't always want to keep every single target name unique.
Thanks
-Jimi
--
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://www.cmake.org/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://www.cmake.org/mailman/listinfo/cmake