On Saturday 06 November 2010 17:30:10 Michael Hertling wrote: > On 11/06/2010 05:26 PM, luxInteg wrote: > > Greetings, > > > > I am learning cmake. > > > > I have a question on using add_library. in my project(learnCMAKE). > > The latter has:- > > > > ---a) 2 source files file1.c file2.c > > ---b) the envar {CFLAGS} set > > ---c) need to generate libLearnCMAKE.so and libLearnCMAKE.a > > ADD_LIBRARY(LearnCMAKE-shared SHARED file1.c file2.c) > ADD_LIBRARY(LearnCMAKE-static STATIC file1.c file2.c) > SET_TARGET_PROPERTIES(LearnCMAKE-shared LearnCMAKE-static > PROPERTIES OUTPUT_NAME LearnCMAKE) > > > ---d) need to add preprocessor agruments -DXXX to CFLAGS in the > > compilation of the source files before liberies are archived like > > so:- > > > > gcc ${CFLAGS} -DDINT /path/to/file1.c > > gcc ${CFLAGS} -DDINT /path/to/file2.c > > > > gcc ${CFLAGS} -DDLONG /path/to/file1.c > > gcc ${CFLAGS} -DDLONG /path/to/file2.c > > SET_TARGET_PROPERTIES(LearnCMAKE-shared LearnCMAKE-static > PROPERTIES COMPILE_DEFINITIONS DINT) > > or > > SET_SOURCE_FILES_PROPERTIES(/path/to/file1.c /path/to/file2.c > PROPERTIES COMPILE_DEFINITIONS DINT) > > or > > SET_DIRECTORY_PROPERTIES( > PROPERTIES COMPILE_DEFINITIONS DINT) > > or > > ADD_DEFINITIONS(-DDINT) > > or > > SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DDINT") >
thanks a lot. I had the most success with this:- SET_SOURCE_FILES_PROPERTIES(/path/to/file1.c /path/to/file2.c PROPERTIES COMPILE_DEFINITIONS DINT) HOWEVER I need to pass the files through the compiler twice once with _DINT and other with -DDOUBLE before the object files are archived.. I tried this: SET_SOURCE_FILES_PROPERTIES(/path/to/file1.c /path/to/file2.c PROPERTIES COMPILE_DEFINITIONS DINT) SET_SOURCE_FILES_PROPERTIES(/path/to/file1.c /path/to/file2.c PROPERTIES COMPILE_DEFINITIONS DDOUBLE) but only the last one was done. I am wondering if the DINT and DDOUBLE could be incorporated in a foreach loop? advice would be appreciated. sincerely luxINTEG _______________________________________________ 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