[CMake] How to get list of generated object-files of OBJECT-library?
Deniz Bahadir
deniz.bahadir at benocs.com
Mon Jul 17 12:41:45 EDT 2017
Am 17.07.2017 um 17:15 schrieb Nils Gladitz:
> On 17.07.2017 17:13, Deniz Bahadir wrote:
>> Am 17.07.2017 um 16:47 schrieb Nils Gladitz:
>>> On 7/17/2017 3:52 PM, Deniz Bahadir wrote:
>>>>
>>>> This works just fine. However, now I want to add an additional
>>>> build-step after creation of the object-files and before linking the
>>>> shared library. (In particular, I want to compress the debug-symbols
>>>> in the object-files. But that should be irrelevant for my question.)
>>>>
>>>> My first attempt was to add the following between the two
>>>> add_library commands:
>>>> ```
>>>> add_custom_command( TARGET ${PROJECT_NAME}_OBJECTS POST_BUILD
>>>> COMMAND objcopy --compress-debug-sections
>>>> $<TARGET_OBJECTS:${PROJECT_NAME}_OBJECT>
>>>> )
>>>> ```
>>>> But that results in the following error:
>>>> ```
>>>> (add_custom_command):
>>>> Target "MyProject_OBJECTS" is an OBJECT library that may not
>>>> have PRE_BUILD, PRE_LINK, or POST_BUILD commands.
>>>> ```
>>>>
>>>> So I tried instead to add the following between the two add_library
>>>> commands:
>>>> ```
>>>> add_custom_command( TARGET ${PROJECT_NAME} PRE_LINK
>>>> COMMAND objcopy --compress-debug-sections
>>>> $<TARGET_OBJECTS:${PROJECT_NAME}_OBJECT>
>>>> )
>>>> ```
>>>> This then fails when evaluating the generator-expression:
>>>> ```
>>>> (add_custom_command):
>>>> Error evaluating generator expression:
>>>>
>>>> $<TARGET_OBJECTS:MyProject_OBJECTS>
>>>>
>>>> The evaluation of the TARGET_OBJECTS generator expression is only
>>>> suitable
>>>> for consumption by CMake. It is not suitable for writing out
>>>> elsewhere.
>>>> ```
>>>>
>>>> So I am currently out of ideas (which do not make the CMakeLists.txt
>>>> file completely unmaintainable). Therefore my question is:
>>>>
>>>> How can I retrieve the list of generated object-files so that I can
>>>> pass it to another program that should be run as additional
>>>> build-step before linking?
>>>>
>>>> IMHO, the most comfortable (and syntactically cleanest) way would be
>>>> my first attempt. But that is probably more a feature-request than a
>>>> simple question.
>>>
>>> FWIW this was implemented in the upcoming 3.9:
>>> https://cmake.org/cmake/help/latest/module/CPackIFW.html#command:cpack_ifw_configure_component
>>>
>>
>> Thank you for your answer, Nils, but I do not really see how this
>> relates.
>> This command seems to address CPack, while I am still struggling with
>> CMake building files (that later might be installed by CPack).
>
> So sorry about that.
> Must have gotten the wrong link in my clipboard.
>
> The correct link is:
> https://cmake.org/cmake/help/latest/release/3.9.html#other
Thanks a lot. That makes more sense now.
So I will wait for CMake 3.9 to automagically fix my problem. :-)
>
> Nils
Thanks again,
Deniz
More information about the CMake
mailing list