I have a large project that I recently converted from autotools to cmake.
Everything works great save for the fact that everytime I make the project
every single source file is recompiled. I think the reason is that my build
relies on a number of custom targets this generate a bunch of header files that
are used by almost all the other sources in the project. According to the
documentation for add_custom_target the target is always considered out of date
so it will recompile everytime. Is there anyway to get around this and only
compile if something has changed? I have included one of the custom targets
and the associated custom command below:
#Add command to compile IDL files
ADD_CUSTOM_TARGET(CompileIdl ALL)
ADD_CUSTOM_COMMAND(
DEPENDS ${TAO_IDL}
COMMAND ${TAO_IDL} -in -hc C.h -cs C.cpp -ci C.i.h -hs S.h -hT S_T.h
-ss S.cpp -sT S_T.cpp -si S.i.h ${IDL_INCLUDES} ${SRC_FINAL}
TARGET CompileIdl
OUTPUTS ${IDL_CLIENT_CPP} ${IDL_CLIENT_H} ${IDL_CLIENT_IH}
${IDL_SERVER_CPP} ${IDL_SERVER_H} ${IDL_SERVER_IH}
)
#Now compile the generated sources
SET(BUILT_SOURCES ${IDL_CLIENT_CPP} ${IDL_CLIENT_H} ${IDL_CLIENT_IH}
${IDL_SERVER_CPP} ${IDL_SERVER_H} ${IDL_SERVER_IH} )
SET_SOURCE_FILES_PROPERTIES(${BUILT_SOURCES} PROPERTIES GENERATED true)
_______________________________________________
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