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

Reply via email to