[CMake] Generated header dependency problem

Rob Boehne robb at datalogics.com
Thu Oct 18 14:29:06 EDT 2018


All,

I have some files that get “sed” run on them, and that output is written to a file with the suffix “nps”
These files are #included by a C++ source file listed as a source for a library in the same CMakeLists.txt

The documentation suggests that the dependency the .cpp file has on the generated include files will be handled automatically – but I don’t see any reference to them in the generate Makefile (except in CXX.includecache)

Here is the section of CMakeLists.txt that generates the files:

    set(SED_CMD  "sed -e 's/\"/\\\\\"/g'  -e 's/\\(.*\\)/\"\\1\\\\n\"/'" )

    FOREACH( PS_FILE
            macrmenc.ps
            winenc.ps
        )
        string(REGEX REPLACE "^(.+)\.ps$" "\\1\.nps" NPS_FILE  ${PS_FILE} )
        set(PS_PATH "../../../Source/PDCore/ProcSet/${PS_FILE}")
        add_custom_command(OUTPUT ${NPS_FILE}
                           COMMAND  ${SED_CMD}
                           MAIN_DEPENDENCY ${PS_PATH}
                           VERBATIM )
    ENDFOREACH()

My question is, How do I get the source file that includes these to cause them to be generated?
In other words, why doesn’t the C++ scanner see that a file named “winenc.nps” is included but is not present and generate it from “winenc.ps” ?

I’m using CMake 3.12.1 and the Makefile generator, and the symptom is that everything builds up to the point where the CPP file that includes “winenc.nps” is compiled, and that fails with:

    error: winenc.nps: No such file or directory

TIA,

Rob

[cid:image002.png at 01D3D0E3.DCFE6710]

Rob Boehne
Senior Software Architect | Datalogics, Inc.
+1.312.853.8351<tel:(312)%20853-8351> | robb at datalogics.com<mailto:robb at datalogics.com>
datalogics.com<http://www.datalogics.com/> | blogs.datalogics.com<http://blogs.datalogics.com/>

Connect with us: Facebook<https://www.facebook.com/DatalogicsInc> | Twitter<https://twitter.com/DatalogicsInc> | LinkedIn<https://www.linkedin.com/company/datalogics?actionToken=p=p%3Dbiz-company-login%26c%3D3217e65a-bdc2-4b38-8f9c-13c982e8c529%26m%3Dcompany_feed%26n%3D0&t=a%3DisFolloweeOfPoster%253Dfalse%2526distanceFromActor%253D-1%2526actorType%253D%2526likedByUser%253Dfalse%2526targetId%253D%2526recentCommentUrns%253D%2526targetType%253D%2526sponsoredFlag%253DORGANIC%2526verbType%253Dlinkedin%25253Ashare%2526objectType%253Dlinkedin%25253Aarticle%2526totalShares%253D0%2526activityId%253Durn%25253Ali%25253Aactivity%25253A6263731876121362433%2526recentLikerUrns%253D%2526actorId%253Durn%25253Ali%25253Acompany%25253A14000%2526totalComments%253D0%2526relevanceScore%253D0.0%2526recentCommenterUrns%253D%2526isPublic%253Dtrue%2526time%253D-1%2526totalLikes%253D0%2526objectId%253Durn%25253Ali%25253Aarticle%25253A7793179909183391510%2526distanceFromNestedActor%253D-1%26s%3DORG> | YouTube<https://www.youtube.com/user/Datalogics>


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20181018/4dfd92f8/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 124449 bytes
Desc: image001.png
URL: <https://cmake.org/pipermail/cmake/attachments/20181018/4dfd92f8/attachment-0001.png>


More information about the CMake mailing list