Hi Tyler, > [...] why do you need to do all this?
I need this to binary compare the built libraries of two releases. If a library of the current release build is binary equal to the library of the previous release build, I can be sure that there had been no change at all. Unfortunately without the option "-frandom-seed", the object files and libraries of subsequent builds are binary different, even when no source file had been changed. Cheers, Joerg > -----Ursprüngliche Nachricht----- > Von: Tyler Roscoe [mailto:[email protected]] > Gesendet: Freitag, 17. Juli 2009 21:35 > An: Jörg Förstner > Cc: [email protected] > Betreff: Re: [CMake] How to calculate a value "on the fly" > for use with gcc compiler option? > > On Fri, Jul 17, 2009 at 08:32:38PM +0200, Jörg Förstner wrote: > > We use gcc's option "-frandom-seed=<value>", which uses a > given value as a starting point for it's random number generator. > > As every file shall have a unique random seed, we calculate > the MD5 checksum of each source file "on the fly". > > This checksum is then used as a value for the option > "-frandom-seed". > > This sounds pretty crazy. Not really relevant to your > question, but why > do you need to do all this? Are you trying obfuscate your object files > to prevent decompilation or something? > > > Here's how the current compile rule in the old Makefile looks like: > > $(CC) -frandom-seed=$(shell md5sum $< | sed 's/\(.*\) > .*/\1/') $(CCFLAGS) -c $< -o $@ > > > > I tried to do this in cmake, but I only have this command: > > ADD_DEFINITIONS( > > "-frandom-seed=$(shell md5sum $< | sed 's/\(.*\) .*/\1/')" > > ) > > > > But how can I determine the current filename and replace > "$<" by the filename? > > How can this be made using cmake? > > I would move all the md5sum and sed complexity into a script and then > just iterate over your source files, sending each to the script and > getting the appropriate output. Something like this: > > foreach (_file ${src_files}) > execute_process (my_md5sum_sed_script ${_file} > OUTPUT_VARIABLE _seed) > add_definitions (...) > endforeach () > > > hth, > tyler > _______________________________________________ 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
