| Revision 15 (by moose, 2009/02/13 03:53:49) |
* add Debug mode to cmakelist.txt
* add cseproto_get_item_head/tail functions
|
cmake_minimum_required (VERSION 2.6)
project (cseproto C)
option(BUILD_STATIC "enable static lib" OFF)
option(BUILD_SHARED "enable shared lib" ON)
option(ENABLE_TESTS "enable unit tests" OFF)
CONFIGURE_FILE(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
ADD_CUSTOM_TARGET(uninstall
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
include_directories(include)
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
#set(LIBRARY_OUTPUT_PATH lib)
if(CMAKE_COMPILER_IS_GNUCC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -W -Wall")
endif(CMAKE_COMPILER_IS_GNUCC)
if(CMAKE_BUILD_TYPE MATCHES "[Dd][Ee][Bb][Uu][Gg]")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DDEBUG")
endif(CMAKE_BUILD_TYPE MATCHES "[Dd][Ee][Bb][Uu][Gg]")
aux_source_directory(src CSEPROTO_SOURCE)
aux_source_directory(include CSEPROTO_INCLUDE)
if(NOT BUILD_STATIC AND NOT BUILD_SHARED)
message(FATAL_ERROR "Must build either or both of the STATIC or SHARED libs.")
endif(NOT BUILD_STATIC AND NOT BUILD_SHARED)
if(BUILD_STATIC)
message(STATUS "Building Static lib.")
add_library(cseproto-static STATIC ${CSEPROTO_SOURCE})
SET_TARGET_PROPERTIES(cseproto-static PROPERTIES LINKER_LANGUAGE C)
SET_TARGET_PROPERTIES(cseproto-static PROPERTIES OUTPUT_NAME cseproto)
install(TARGETS cseproto-static
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
endif(BUILD_STATIC)
if(BUILD_SHARED)
message(STATUS "Building Shared lib.")
add_library(cseproto-shared SHARED ${CSEPROTO_SOURCE})
SET_TARGET_PROPERTIES(cseproto-shared PROPERTIES LINKER_LANGUAGE C)
SET_TARGET_PROPERTIES(cseproto-shared PROPERTIES OUTPUT_NAME cseproto)
install(TARGETS cseproto-shared
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
endif(BUILD_SHARED)
if(ENABLE_TESTS)
ENABLE_TESTING()
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/tests)
endif(ENABLE_TESTS)
install(DIRECTORY include/cseproto DESTINATION include FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE)