[CMake] help with learning add_library

Michael Hertling mhertling at online.de
Sat Nov 6 13:30:10 EDT 2010


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")

If the CFLAGS environment variable is defined when CMake runs the first
time on the project the flags are taken for CMAKE_C_FLAGS, but consider
to set the latter in the CMakeLists.txt or from the command line or the
GUI, so you don't need to have a properly set up environment to succeed.

> How can this be achived in a marco or whatever with add_library ?
> Help would be appreciated

Regards,

Michael


More information about the CMake mailing list