[CMake] Adding "*.obj" geometry files...
Daniel Dekkers
d.dekkers at cthrough.nl
Wed Jun 13 10:48:50 EDT 2012
Sorry to keep bothering you guys...
Our problem now is that resource files could have the same names in
different folders.
The ADD_CUSTOM_COMMAND seems to create a rule "identifier" based on the name
of the resource file relative to the CMakeFiles directory.
But we have a "saveloadicon.png" in /images and a "saveloadicon.png" in
/textures, both trying to add a rule resulting in a conflict:
CMake Error: Attempt to add a custom rule to output
"C:/development/build/DEBUGBULLET/StyleClash//CMakeFiles/saveloadicon.png.ru
le" which already has a custom rule.
Is there a way to influence this rule identifier?
This is the ADD_CUSTOM_COMMAND we're using:
ADD_CUSTOM_COMMAND(OUTPUT
"${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${RSRC_FILE_NO_PATH}"
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${RSRC_FILE} ${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${RSRC_FILE_NO_PATH}
DEPENDS "${RSRC_FILE}"
)
Thanks,
Daniel
-----Oorspronkelijk bericht-----
Van: Petr Kmoch [mailto:petr.kmoch at gmail.com]
Verzonden: woensdag 13 juni 2012 14:36
Aan: Daniel Dekkers
CC: Tim Hutton; J; cmake at cmake.org
Onderwerp: Re: [CMake] Adding "*.obj" geometry files...
You could use solution filters to put all the copy targets into one folder:
set_property(GLOBAL PROPERTY USE_FOLDERS TRUE) set_property(TARGET
${RESOURCESCOPYTARGET} PROPERTY FOLDER "Copy
Projects") #for each resource copy target
Petr
On Wed, Jun 13, 2012 at 2:26 PM, Daniel Dekkers <d.dekkers at cthrough.nl>
wrote:
> Hi Tim,
>
> That works. In our case we get:
>
> # Additional dedicated "copy-the-resource-files-for-this-app"-target
> strategy.
> # Copies resource files to the build directory, triggered by a file
> change in one of them.
> IF( RT_ALL_RSRC_FILES )
> SET( RESOURCESCOPYTARGET "Copy${RT_APP_NAME}Resources" )
> FOREACH( RSRC_FILE ${RT_ALL_RSRC_FILES} )
> GET_FILENAME_COMPONENT(RSRC_FILE_NO_PATH ${RSRC_FILE}
> NAME)
> ADD_CUSTOM_COMMAND(
> OUTPUT
> "${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${RSRC_FILE_NO_PATH}"
> COMMAND ${CMAKE_COMMAND} -E copy_if_different
> ${RSRC_FILE}
> ${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${RSRC_FILE_NO_PATH}
> DEPENDS "${RSRC_FILE}"
> )
> LIST( APPEND DEPENDENT_RSRC_FILES
> "${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${RSRC_FILE_NO_PATH}" )
> ENDFOREACH()
> ADD_CUSTOM_TARGET( ${RESOURCESCOPYTARGET} ALL DEPENDS
> ${DEPENDENT_RSRC_FILES} )
> ADD_DEPENDENCIES(${RT_APP_NAME} ${RESOURCESCOPYTARGET})
> ENDIF()
>
> Only "problem" are the extra targets shown in the IDE. A bit "cluttery".
> We have anywhere between 1 or 10 executables in a single solution and
> they all get their own additional CopyResources target.
> But, ok...
>
> Thanks!
> Daniel
>
>
>
> -----Oorspronkelijk bericht-----
> Van: Tim Hutton [mailto:tim.hutton at gmail.com]
> Verzonden: woensdag 13 juni 2012 12:42
> Aan: Daniel Dekkers
> CC: Petr Kmoch; cmake at cmake.org; Bill Hoffman
> Onderwerp: Re: [CMake] Adding "*.obj" geometry files...
>
> You can group all the files to be copied into a single subproject.
>
> We do this here:
> http://reaction-diffusion.googlecode.com/svn/trunk/Ready/CMakeLists.tx
> t (see the section "copy installation files to build folder")
>
> On 13 June 2012 11:13, Daniel Dekkers <d.dekkers at cthrough.nl> wrote:
>> Somewhat related...
>>
>> We now have the resources excluded from the build but visible in the
>> IDE. So far so good.
>> But we also want to copy them (all) to the build directory.
>> We have a post build command that does that.
>> But if you only change the contents of one of the resource files, a
>> rebuild is not invoked (exclude from build) and so the files are not
> copied.
>> For another project we made specific targets (ADD_CUSTOM_TARGET) just
>> to handle the copying but that gives a lot of extra subprojects in
>> the
> IDE.
>> Is there another way to achieve this?
>>
>> Thanks,
>> Daniel
>>
>> -----Oorspronkelijk bericht-----
>> Van: Petr Kmoch [mailto:petr.kmoch at gmail.com]
>> Verzonden: woensdag 13 juni 2012 8:10
>> Aan: Daniel Dekkers
>> CC: Bill Hoffman; cmake at cmake.org
>> Onderwerp: Re: [CMake] Adding "*.obj" geometry files...
>>
>> Hi Daniel.
>>
>> Yes, that's how Visual Studio shows excluded files. If you exclude a
>> file by setting its "Excluded from build" property manually, you get
>> the
> same.
>>
>> Petr
>>
>> On Tue, Jun 12, 2012 at 8:31 PM, Daniel Dekkers
>> <d.dekkers at cthrough.nl>
>> wrote:
>>> Ok, great, works.
>>> So I guess the little red stop-sign icons shown by Visual Studio
>>> denote that these files are excluded from the build?
>>>
>>> Thanks,
>>> Daniel
>>>
>>>
>>> -----Oorspronkelijk bericht-----
>>> Van: cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] Namens
>>> Bill Hoffman
>>> Verzonden: dinsdag 12 juni 2012 19:41
>>> Aan: cmake at cmake.org
>>> Onderwerp: Re: [CMake] Adding "*.obj" geometry files...
>>>
>>> On 6/12/2012 1:10 PM, Daniel Dekkers wrote:
>>>> Hi,
>>>>
>>>> We are adding some resource files (XML files, shaders, etc.) to a
>>>> Visual Studio project just to make them visible and accessible in
>>>> the
>> IDE.
>>>>
>>>> We also add geometry files with the extension "obj". Visual Studio
>>>> treats these as regular object files and starts using them during
>>>> the
>>> build.
>>>>
>>>> Is there a way that we can "label" these obj files so Visual Studio
>>>> leaves them alone?
>>>>
>>>> Kind Regards,
>>>>
>>>> Daniel Dekkers
>>>>
>>> Mark them as HEADER_FILE_ONLY .
>>>
>>>
>>> http://www.cmake.org/cmake/help/v2.8.8/cmake.html#prop_sf:HEADER_FIL
>>> E
>>> _
>>> ONLY
>>>
>>> --
>>>
>>> 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
>>>
>>> --
>>>
>>> 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
>>
>> --
>>
>> 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
>
>
>
> --
> Tim Hutton - http://www.sq3.org.uk -
> http://profiles.google.com/tim.hutton/
>
> --
>
> 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
More information about the CMake
mailing list