Hello, I am a new user of cmake and I am running version 2.6-patch 4 on Linux.

I am setting up a simple project to learn cmake and most everything has worked 
just as expected except for my attempts to define where an output library 
target is to be created. Here is part of the CMakeLists.txt

project(ZLIB C)
SET(CMAKE_INSTALL_PREFIX ${PROJECT_BINARY_DIR}/install)
SET(CMAKE_BUILD_TYPE Release)

set(CMAKE_C_COMPILER gcc)
add_definitions(-O3)
set(BUILD_SHARED_LIBS ON)
cmake_minimum_required(VERSION 2.6)

set(ZLIB_PUBLIC_HDRS
    zconf.h
    zlib.h
)

set(ZLIB_PRIVATE_HDRS
    crc32.h
    deflate.h
    inffast.h
    inffixed.h
    inflate.h
    inftrees.h
    trees.h
    zutil.h
)

set(ZLIB_SRCS
    adler32.c
    compress.c
    crc32.c
    deflate.c
    inflate.c
    infback.c
    inftrees.c
    inffast.c
    gzio.c
    trees.c
    uncompr.c
    zutil.c
)

set(ZLIB_TEST_SRCS
    example.c
)

set(ZLIB_MAN_SRCS
    zlib.3
)

add_library(z ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
set_target_properties(z PROPERTIES DEFINE_SYMBOL ZLIB_DLL)
set(LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)

add_executable(example ${ZLIB_TEST_SRCS})
set(RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)

add_dependencies(example z)

target_link_libraries(example z)

install(TARGETS z DESTINATION lib )
install(FILES ${ZLIB_PUBLIC_HDRS} DESTINATION include)
install(TARGETS example DESTINATION bin)
install(FILES ${ZLIB_MAN_SRCS} DESTINATION share/man/man3)

I have tried many variations of setting the location for the target z to be 
created (and the executable "example"), both the new style as shown above and 
the old style (LIBRARY_OUTPUT_PATH), using variables as above and using 
absolute paths and nothing works. libz.so is always dropped directly into my 
build directory.

Interesting, if I hand edit the cache file and add the variable 
CMAKE_LIBRARY_OUTPUT_DIRECTORY to change the library creation location it 
works: why does my cmake configuration not respect the above commands and write 
this into the cache file automatically?

Thanks,

--Randy

+---------------------------------------------------------------------+
|Randy R. Lober                Email: rrlo...@sandia.gov              |
|Sandia National Laboratories  Systems Engineering, Integration & Test|
|P.O. Box 5800, MS 0835                                               |
|Albuquerque, NM 87185-0835    (505) 845-9353 FAX 284-1242            |
+---------------------------------------------------------------------+
_______________________________________________
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

Reply via email to