Hi I have a project where I have C++ and C source files. I'm adding executables for this (via macros) like this
foreach(executable ${SOURCES}) add_executable(${executable} ${executable} ) target_link_libraries(${executable} ${STIR_LIBRARIES}) endforeach() where ${SOURCES} is a list of sources WITHOUT extension, e.g. set( SOURCES abs_image src2) This relies on the fact that cmake should find .cxx and .c etc source files for add_executable. At least, I think it should (I found this some tutorial, e.g. http://www-flc.desy.de/ldcoptimization/documents/talks/CMake_Tutorial.pdf), but the doc for add_executable does not seem to mention this behaviour. My current CMake files work fine on Windows and Linux, but I now have a MacOSX user who says that it fails. He's running cmake 2.8.7 and when I inspect that linking command, it looks like (slightly edited for brevity) /usr/bin/c++ -O3 -DNDEBUG -ffast-math -Wl,-search_paths_first -Wl,-headerpad_max_install_names -o abs_image a ../buildblock/libbuildblock.a That is, clearly the abs_image.o file is missing on this command line. Maybe this "adding a list of known extensions" feature is no longer supported? Or is the list of known extensions platform specific? (that would be bad) I guess I will have to set my SOURCE files with the extension, and then strip the extension for the executable-name. maybe with something like foreach(src ${SOURCES}) STRING(REPLACE \(.*\)\..* \1 executable ${src}) add_executable(${executable} ${src} ) ... endforeach() or alternatively find the source file foreach(executable ${SOURCES}) FILE(GLOB src "*.cxx" "*.c") add_executable(${executable} ${src} ) target_link_libraries(${executable} ${STIR_LIBRARIES}) endforeach() Any suggestions? Thanks Kris -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake