I know is not a good practice but this library only has generated code, and the generated headers are need for build other applications made by third parties. This is why i prefer to put in sources.
I atach here the relevant code for both cases and generated rules. Case 1 - works as expected Case 2 - i don`t see that Cmake generated any rule for the second commands. Case 1) ADD_CUSTOM_COMMAND( OUTPUT ${PROJECT_SOURCE_DIR}/src/${SOURCE_OUTPUT_BASENAME} ${PROJECT_SOURCE_DIR}/include/${PROJECT_NAMESPACE}/${HEADER_OUTPUT_BASENAME} COMMAND ${SLICE2CPP_COMMAND} ${SLICE_ARGS} ${SLICE_SOURCE} COMMAND ${MOVE_FILE_COMMAND} ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_OUTPUT_BASENAME} ${PROJECT_SOURCE_DIR}/src/${SOURCE_OUTPUT_BASENAME} COMMAND ${MOVE_FILE_COMMAND} ${CMAKE_CURRENT_BINARY_DIR}/${HEADER_OUTPUT_BASENAME} ${PROJECT_SOURCE_DIR}/include/${PROJECT_NAMESPACE}/${HEADER_OUTPUT_BASENAME} DEPENDS ${DEPENDS} COMMENT "-- Generating ${SOURCE_OUTPUT_BASENAME} ${HEADER_OUTPUT_BASENAME} file from ${SLICE_SOURCE_BASENAME}") #### Rules in Makefile For Case1 ##### ../src/IPluginService.cpp: ../slice/Oz/IPluginService.ice $(CMAKE_COMMAND) -E cmake_progress_report /home/pepone/proyects/ydra-ipluginservice/build/CMakeFiles $(CMAKE_PROGRESS_2) @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold "-- Generating IPluginService.cpp IPluginService.h file from IPluginService.ice" /usr/bin/slice2cpp --include-dir Oz -I/home/pepone/proyects/ydra-ipluginservice/slice -I/usr/share/slice /home/pepone/proyects/ydra-ipluginservice/slice/Oz/IPluginService.ice mv /home/pepone/proyects/ydra-ipluginservice/build/IPluginService.cpp /home/pepone/proyects/ydra-ipluginservice/src/IPluginService.cpp mv /home/pepone/proyects/ydra-ipluginservice/build/IPluginService.h /home/pepone/proyects/ydra-ipluginservice/include/Oz/IPluginService.h ../include/Oz/IPluginService.h: ../src/IPluginService.cpp CMakeFiles/IPluginService.dir/depend: CMakeFiles/IPluginService.dir/depend.make.mark ############# END ##########################3 Case 2) ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_OUTPUT_BASENAME} ${CMAKE_CURRENT_BINARY_DIR}/${HEADER_OUTPUT_BASENAME} COMMAND ${SLICE2CPP_COMMAND} ${SLICE_ARGS} ${SLICE_SOURCE} DEPENDS ${DEPENDS} COMMENT "-- Generating ${SOURCE_OUTPUT_BASENAME} ${HEADER_OUTPUT_BASENAME} file from ${SLICE_SOURCE_BASENAME}") ADD_CUSTOM_COMMAND( OUTPUT ${PROJECT_SOURCE_DIR}/src/${SOURCE_OUTPUT_BASENAME} ${PROJECT_SOURCE_DIR}/include/${PROJECT_NAMESPACE}/${HEADER_OUTPUT_BASENAME} COMMAND ${MOVE_FILE_COMMAND} ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_OUTPUT_BASENAME} ${PROJECT_SOURCE_DIR}/src/${SOURCE_OUTPUT_BASENAME} COMMAND ${MOVE_FILE_COMMAND} ${CMAKE_CURRENT_BINARY_DIR}/${HEADER_OUTPUT_BASENAME} ${PROJECT_SOURCE_DIR}/include/${PROJECT_NAMESPACE}/${HEADER_OUTPUT_BASENAME} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_OUTPUT_BASENAME} ${CMAKE_CURRENT_BINARY_DIR}/${HEADER_OUTPUT_BASENAME} COMMENT "-- Moving generated file ${SOURCE_OUTPUT_BASENAME} to ${PROJECT_SOURCE_DIR}/src") ##################### Rules in Makefile for Case 2) ###################################### # CMAKE generated file: DO NOT EDIT! # Generated by "Unix Makefiles" Generator, CMake Version 2.4 #============================================================================= # Special targets provided by cmake. # Disable implicit rules so canoncical targets will work. .SUFFIXES: .SUFFIXES: .hpux_make_needs_suffix_list # Suppress display of executed commands. $(VERBOSE).SILENT: # A target that is always out of date. cmake_force: #============================================================================= # Set environment variables for the build. # The shell in which to execute make rules. SHELL = /bin/sh # The CMake executable. CMAKE_COMMAND = /usr/bin/cmake # The command to remove a file. RM = /usr/bin/cmake -E remove -f # The program to use to edit the cache. CMAKE_EDIT_COMMAND = /usr/bin/ccmake # The top-level source directory on which CMake was run. CMAKE_SOURCE_DIR = /home/pepone/proyects/ydra-ipluginservice # The top-level build directory on which CMake was run. CMAKE_BINARY_DIR = /home/pepone/proyects/ydra-ipluginservice/build # Include any dependencies generated for this target. include CMakeFiles/IPluginService.dir/depend.make # Include the progress variables for this target. include CMakeFiles/IPluginService.dir/progress.make # Include the compile flags for this target's objects. include CMakeFiles/IPluginService.dir/flags.make CMakeFiles/IPluginService.dir/depend.make.mark: CMakeFiles/IPluginService.dir/flags.make CMakeFiles/IPluginService.dir/depend.make.mark: ../src/IPluginService.cpp CMakeFiles/IPluginService.dir/src/IPluginService.o: CMakeFiles/IPluginService.dir/flags.make CMakeFiles/IPluginService.dir/src/IPluginService.o: ../src/IPluginService.cpp $(CMAKE_COMMAND) -E cmake_progress_report /home/pepone/proyects/ydra-ipluginservice/build/CMakeFiles $(CMAKE_PROGRESS_1) @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/IPluginService.dir/src/IPluginService.o" /usr/bin/c++ $(CXX_FLAGS) -o CMakeFiles/IPluginService.dir/src/IPluginService.o -c /home/pepone/proyects/ydra-ipluginservice/src/IPluginService.cpp CMakeFiles/IPluginService.dir/src/IPluginService.i: cmake_force @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/IPluginService.dir/src/IPluginService.i" /usr/bin/c++ $(CXX_FLAGS) -E /home/pepone/proyects/ydra-ipluginservice/src/IPluginService.cpp > CMakeFiles/IPluginService.dir/src/IPluginService.i CMakeFiles/IPluginService.dir/src/IPluginService.s: cmake_force @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/IPluginService.dir/src/IPluginService.s" /usr/bin/c++ $(CXX_FLAGS) -S /home/pepone/proyects/ydra-ipluginservice/src/IPluginService.cpp -o CMakeFiles/IPluginService.dir/src/IPluginService.s CMakeFiles/IPluginService.dir/src/IPluginService.o.requires: CMakeFiles/IPluginService.dir/src/IPluginService.o.provides: CMakeFiles/IPluginService.dir/src/IPluginService.o.requires $(MAKE) -f CMakeFiles/IPluginService.dir/build.make CMakeFiles/IPluginService.dir/src/IPluginService.o.provides.build CMakeFiles/IPluginService.dir/src/IPluginService.o.provides.build: CMakeFiles/IPluginService.dir/src/IPluginService.o IPluginService.cpp: ../slice/Oz/IPluginService.ice $(CMAKE_COMMAND) -E cmake_progress_report /home/pepone/proyects/ydra-ipluginservice/build/CMakeFiles $(CMAKE_PROGRESS_2) @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold "-- Generating IPluginService.cpp IPluginService.h file from IPluginService.ice" /usr/bin/slice2cpp --include-dir Oz -I/home/pepone/proyects/ydra-ipluginservice/slice -I/usr/share/slice /home/pepone/proyects/ydra-ipluginservice/slice/Oz/IPluginService.ice IPluginService.h: IPluginService.cpp CMakeFiles/IPluginService.dir/depend: CMakeFiles/IPluginService.dir/depend.make.mark CMakeFiles/IPluginService.dir/depend.make.mark: IPluginService.cpp CMakeFiles/IPluginService.dir/depend.make.mark: IPluginService.h @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --magenta --bold "Scanning dependencies of target IPluginService" cd /home/pepone/proyects/ydra-ipluginservice/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/pepone/proyects/ydra-ipluginservice /home/pepone/proyects/ydra-ipluginservice /home/pepone/proyects/ydra-ipluginservice/build /home/pepone/proyects/ydra-ipluginservice/build /home/pepone/proyects/ydra-ipluginservice/build/CMakeFiles/IPluginService.dir/DependInfo.cmake # Object files for target IPluginService IPluginService_OBJECTS = \ "CMakeFiles/IPluginService.dir/src/IPluginService.o" # External object files for target IPluginService IPluginService_EXTERNAL_OBJECTS = libIPluginService.so: CMakeFiles/IPluginService.dir/src/IPluginService.o libIPluginService.so: CMakeFiles/IPluginService.dir/build.make @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold "Linking CXX shared library libIPluginService.so" $(CMAKE_COMMAND) -P CMakeFiles/IPluginService.dir/cmake_clean_target.cmake $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/IPluginService.dir/link.txt --verbose=$(VERBOSE) # Rule to build all files generated by this target. CMakeFiles/IPluginService.dir/build: libIPluginService.so CMakeFiles/IPluginService.dir/requires: CMakeFiles/IPluginService.dir/src/IPluginService.o.requires CMakeFiles/IPluginService.dir/clean: $(CMAKE_COMMAND) -P CMakeFiles/IPluginService.dir/cmake_clean.cmake
_______________________________________________ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake