[CMake] Why the target is named to "liblib" instead to "lib"? (Linux)

Manfred Rebentisch mrebentisch at comparat.de
Sat Mar 31 05:47:34 EST 2007


Hello,
I am new to this list, so I beg your pardon, if the question is a recurrence.

I use cmake version 2.4-patch 3 on Suse 10.1 .

I want to generate a library with the name "libstd3000c.so". So I define:

==== CMakeLists.txt BEGIN
project(Std3000C)
set(USEAPR 1)
set(TARGETPART std3000c)
set(SOURCES  cparray.c cpmap.c         cptplbuf.c          cpavl.c )
# and much more sources...
ADD_LIBRARY(${TARGETPART} SHARED ${SOURCES})
TARGET_LINK_LIBRARIES(${TARGETPART} expat )
if(USEAPR)
    ADD_DEFINITIONS(-DUSE_APR )
    FIND_LIBRARY(APRUTIL_LIB NAMES aprutil-1 aprutil-0 )
    FIND_LIBRARY(APR_LIB NAMES apr-1 apr-0 )
    FIND_PATH(APR_INCL NAMES apr.h apr_lib.h
            PATH_SUFFIXES apache2 apr-0 apr-1 apr-1.0 )
    TARGET_LINK_LIBRARIES(${TARGETPART}  ${APR_LIB} ${APRUTIL_LIB})
    INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR} ${APR_INCL} )
endif (USEAPR)
==== CMakeLists.txt END
The orignal file contains more lines, but this is the important.

After "cmake ." and make there is a file named "liblibstd3000c.so". 

In the file "CMakeFiles/libstd3000c.dir/build.make I found the following:

[...]
"CMakeFiles/libstd3000c.dir/cpunicode.o" \
"CMakeFiles/libstd3000c.dir/cpstack.o" \
"CMakeFiles/libstd3000c.dir/cpgrafix.o"

# External object files for target libstd3000c
libstd3000c_EXTERNAL_OBJECTS =

liblibstd3000c.so: CMakeFiles/libstd3000c.dir/cparray.o
liblibstd3000c.so: CMakeFiles/libstd3000c.dir/cpmap.o
liblibstd3000c.so: CMakeFiles/libstd3000c.dir/cptplbuf.o
[...]

In link.txt is:
/usr/local/bin/gcc  -fPIC    -shared -Wl,-soname,liblibstd3000c.so -o 
liblibstd3000c.so "CMakeFiles/libstd3000c.dir/cparray.o" "CMakeFiles/libstd3000c.dir/cpmap.o" "CMakeFiles/libstd3000c.dir/cptplbuf.o" "CMakeFiles/libstd3000c.dir/cpavl.o" "CMakeFiles/libstd3000c.dir/cpdaemon.o" "CMakeFiles/libstd3000c.dir/cpfileutils.o" "CMakeFiles/libstd3000c.dir/cpgen.o" "CMakeFiles/libstd3000c.dir/cpiobuffer.o" "CMakeFiles/libstd3000c.dir/cpknv.o" "CMakeFiles/libstd3000c.dir/cplist.o" "CMakeFiles/libstd3000c.dir/cplocking.o" "CMakeFiles/libstd3000c.dir/cplog.o" "CMakeFiles/libstd3000c.dir/cpdbbase.o" "CMakeFiles/libstd3000c.dir/cpparams.o" "CMakeFiles/libstd3000c.dir/cppath.o" "CMakeFiles/libstd3000c.dir/cppipe.o" "CMakeFiles/libstd3000c.dir/cpqueue.o" "CMakeFiles/libstd3000c.dir/cprs232.o" "CMakeFiles/libstd3000c.dir/cpstream.o" "CMakeFiles/libstd3000c.dir/cpstrutils.o" "CMakeFiles/libstd3000c.dir/cptemplate.o" "CMakeFiles/libstd3000c.dir/cputils.o" "CMakeFiles/libstd3000c.dir/md5.o" "CMakeFiles/libstd3000c.dir/params.o" "CMakeFiles/libstd3000c.dir/cpchrtrans.o" "CMakeFiles/libstd3000c.dir/cpdatabase.o" "CMakeFiles/libstd3000c.dir/cprecord.o" "CMakeFiles/libstd3000c.dir/cpdatabaseold.o" "CMakeFiles/libstd3000c.dir/cplangtrans.o" "CMakeFiles/libstd3000c.dir/cpstring.o" "CMakeFiles/libstd3000c.dir/cpnetconn.o" "CMakeFiles/libstd3000c.dir/cpstringcheck.o" "CMakeFiles/libstd3000c.dir/cpdatabaseutil.o" "CMakeFiles/libstd3000c.dir/cpstrarray.o" "CMakeFiles/libstd3000c.dir/cpuri.o" "CMakeFiles/libstd3000c.dir/cpxmlparse.o" "CMakeFiles/libstd3000c.dir/cpprocess.o" "CMakeFiles/libstd3000c.dir/cplistener.o" "CMakeFiles/libstd3000c.dir/cppool.o" "CMakeFiles/libstd3000c.dir/cpvaltype.o" "CMakeFiles/libstd3000c.dir/cprights.o" "CMakeFiles/libstd3000c.dir/cpdate.o" "CMakeFiles/libstd3000c.dir/cpchaindata.o" "CMakeFiles/libstd3000c.dir/cpchainlink.o" "CMakeFiles/libstd3000c.dir/cpchainmap.o" "CMakeFiles/libstd3000c.dir/mem.o" "CMakeFiles/libstd3000c.dir/cpxml.o" "CMakeFiles/libstd3000c.dir/cpfield.o" "CMakeFiles/libstd3000c.dir/cpresultset.o" "CMakeFiles/libstd3000c.dir/cpdbschema.o" "CMakeFiles/libstd3000c.dir/cpberkeley.o" "CMakeFiles/libstd3000c.dir/cpexec.o" "CMakeFiles/libstd3000c.dir/cpcsv.o" "CMakeFiles/libstd3000c.dir/cpmapptr.o" "CMakeFiles/libstd3000c.dir/cpaprbb.o" "CMakeFiles/libstd3000c.dir/cpbbtemplate.o" "CMakeFiles/libstd3000c.dir/cpeancode.o" "CMakeFiles/libstd3000c.dir/cpmutex.o" "CMakeFiles/libstd3000c.dir/cpnetwork.o" "CMakeFiles/libstd3000c.dir/cpunicode.o" "CMakeFiles/libstd3000c.dir/cpstack.o" "CMakeFiles/libstd3000c.dir/cpgrafix.o" -lexpat -lapr-1 -laprutil-1 -lpng -ljpeg -lgd -lz -lfreetype -lm

Why does this happen? How can I change this?

Thank you in advance
Manfred


More information about the CMake mailing list