It seems like a reasonable feature request to me to ask for file(GENERATE to support a similar or sub-set of permissions related options which other file subcommands already provide:
[FILE_PERMISSIONS <permissions>...] [NO_SOURCE_PERMISSIONS] [USE_SOURCE_PERMISSIONS] Doesn't seem like it should be that hard to add support incrementally for that feature... D On Wed, Apr 29, 2015 at 7:18 PM, Alan W. Irwin <ir...@beluga.phys.uvic.ca> wrote: > While attempting to use the configure_file_generate function discussed > in a recent thread here, I discovered a permission deficiency of the > file(GENERATE ...) command which was that permissions are not copied > from input file to output file like they are with configure_file. > > @CMake developers: was this treatment of permissions by design or is > this a bug in the implementation of the file(GENERATE...) command that > you are willing to fix? > > Here is my initial (non-working) attempt to work around this issue > in my configure_file_generate function. > > [...] > # Configure generator expressions. > # N.B. these ${output_file} results will only be available > # at generate time. > file(GENERATE > OUTPUT ${output_file} > INPUT ${intermediate_file} > ) > > if(UNIX OR MSYS) > # This covers all platforms which have permissions, > # i.e., Unix, Cygwin, and MSYS platforms. > > # Work around bad permission semantics of file(GENERATE...) which > # does not copy permissions from input file. Note this --reference > # syntax is probably a non-posix extension of the GNU version of chmod. > # So this will silently fail to change permissions > # on platforms without access to the GNU version of chmod. > execute_process( > COMMAND chmod --reference=${intermediate_file} ${output_file} > ) > endif(UNIX OR MSYS) > > Obviously this workaround does not currently work since > execute_process occurs at configure time rather than generate time as > can be seen from these results: > > software@raven> ls -l examples/tk/tk01* > -rw-r--r-- 1 software software 3692 Apr 29 15:45 examples/tk/tk01 > -rwxr-xr-x 1 software software 3658 Apr 29 15:45 examples/tk/tk01_cf_only* > > where the first file (with bad permissions) is the ${output_file} and > the second file the ${intermediate_file} used in the > configure_file_generate function. > > Is there any method I can use at generate time to change permissions > on the OUTPUT file generated by file(GENERATE...), e.g., is there any > way I can force execute_process to work at generate time? > > Of course, I could fix permissions at build time, but that is a big > maintenance issue trying to keep track of every file processed by > configure_file_generate so I would far prefer to change the > permissions at generate time within the configure_file_generate > function. > > Alan > __________________________ > Alan W. Irwin > > Astronomical research affiliation with Department of Physics and Astronomy, > University of Victoria (astrowww.phys.uvic.ca). > > Programming affiliations with the FreeEOS equation-of-state > implementation for stellar interiors (freeeos.sf.net); the Time > Ephemerides project (timeephem.sf.net); PLplot scientific plotting > software package (plplot.sf.net); the libLASi project > (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); > and the Linux Brochure Project (lbproject.sf.net). > __________________________ > > Linux-powered Science > __________________________ > -- > > Powered by www.kitware.com > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Kitware offers various services to support the CMake community. For more > information on each offering, please visit: > > CMake Support: http://cmake.org/cmake/help/support.html > CMake Consulting: http://cmake.org/cmake/help/consulting.html > CMake Training Courses: http://cmake.org/cmake/help/training.html > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/cmake -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake