I don't see the problem you're having.

I re-wrote your CMakeLists.txt slightly to not use Unix commands:

========================================================================
cmake_minimum_required(VERSION 2.8)
project(Test)

add_custom_command(OUTPUT file.c
    COMMAND echo "GENERATING FILE"
    COMMAND ${CMAKE_COMMAND} -E remove file.c
    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/org.c
file.c
    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/org.c
  )
add_library(LibFile file.c)

add_executable(test1 test.c)
target_link_libraries(test1 LibFile)

add_executable(test2 test.c)
target_link_libraries(test2 LibFile)


========================================================================

I only see GENERATING FILE once, even after the touch command.

Could you be using an old version of CMake? I tested with the current
development head, i.e. post-2.8.11.2


developer 116% cmake ../src
-- The C compiler identification is Clang 4.2.0
-- The CXX compiler identification is Clang 4.2.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done
-- Build files have been written to: /scratch/kent/cmake/test/build
developer 117% make
[ 25%] Generating file.c
GENERATING FILE
Scanning dependencies of target LibFile
[ 50%] Building C object CMakeFiles/LibFile.dir/file.c.o
Linking C static library libLibFile.a
/usr/bin/ranlib: file: libLibFile.a(file.c.o) has no symbols
/usr/bin/ranlib: file: libLibFile.a(file.c.o) has no symbols
/usr/bin/ranlib: warning for library: libLibFile.a the table of contents
is empty (no object file members in the library define global symbols)
[ 50%] Built target LibFile
Scanning dependencies of target test1
[ 75%] Building C object CMakeFiles/test1.dir/test.c.o
Linking C executable test1
[ 75%] Built target test1
Scanning dependencies of target test2
[100%] Building C object CMakeFiles/test2.dir/test.c.o
Linking C executable test2
[100%] Built target test2
developer 123% touch ../src/org.c
developer 124% make
[ 25%] Generating file.c
GENERATING FILE
Scanning dependencies of target LibFile
[ 50%] Building C object CMakeFiles/LibFile.dir/file.c.o
Linking C static library libLibFile.a
/usr/bin/ranlib: file: libLibFile.a(file.c.o) has no symbols
/usr/bin/ranlib: file: libLibFile.a(file.c.o) has no symbols
/usr/bin/ranlib: warning for library: libLibFile.a the table of contents
is empty (no object file members in the library define global symbols)
[ 50%] Built target LibFile
Linking C executable test1
[ 75%] Built target test1
Linking C executable test2
[100%] Built target test2





--
Kent Williams norman-k-willi...@uiowa.edu



________________________________
Notice: This UI Health Care e-mail (including attachments) is covered by the 
Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and 
may be legally privileged.  If you are not the intended recipient, you are 
hereby notified that any retention, dissemination, distribution, or copying of 
this communication is strictly prohibited.  Please reply to the sender that you 
have received the message in error, then delete it.  Thank you.
________________________________
--

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

Reply via email to