| 1 |
11 |
moose |
cmake_minimum_required (VERSION 2.6) |
| 2 |
|
|
project (cseproto C) |
| 3 |
|
|
|
| 4 |
14 |
moose |
option(BUILD_STATIC "enable static lib" OFF) |
| 5 |
11 |
moose |
option(BUILD_SHARED "enable shared lib" ON) |
| 6 |
13 |
moose |
option(ENABLE_TESTS "enable unit tests" OFF) |
| 7 |
11 |
moose |
|
| 8 |
12 |
moose |
CONFIGURE_FILE( |
| 9 |
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" |
| 10 |
|
|
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" |
| 11 |
|
|
IMMEDIATE @ONLY) |
| 12 |
|
|
|
| 13 |
|
|
ADD_CUSTOM_TARGET(uninstall |
| 14 |
|
|
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") |
| 15 |
|
|
|
| 16 |
11 |
moose |
include_directories(include) |
| 17 |
|
|
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib) |
| 18 |
|
|
#set(LIBRARY_OUTPUT_PATH lib) |
| 19 |
|
|
|
| 20 |
|
|
if(CMAKE_COMPILER_IS_GNUCC) |
| 21 |
13 |
moose |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -W -Wall") |
| 22 |
11 |
moose |
endif(CMAKE_COMPILER_IS_GNUCC) |
| 23 |
|
|
|
| 24 |
15 |
moose |
if(CMAKE_BUILD_TYPE MATCHES "[Dd][Ee][Bb][Uu][Gg]") |
| 25 |
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DDEBUG") |
| 26 |
|
|
endif(CMAKE_BUILD_TYPE MATCHES "[Dd][Ee][Bb][Uu][Gg]") |
| 27 |
|
|
|
| 28 |
11 |
moose |
aux_source_directory(src CSEPROTO_SOURCE) |
| 29 |
|
|
aux_source_directory(include CSEPROTO_INCLUDE) |
| 30 |
|
|
|
| 31 |
|
|
if(NOT BUILD_STATIC AND NOT BUILD_SHARED) |
| 32 |
|
|
message(FATAL_ERROR "Must build either or both of the STATIC or SHARED libs.") |
| 33 |
|
|
endif(NOT BUILD_STATIC AND NOT BUILD_SHARED) |
| 34 |
|
|
|
| 35 |
|
|
if(BUILD_STATIC) |
| 36 |
|
|
message(STATUS "Building Static lib.") |
| 37 |
|
|
add_library(cseproto-static STATIC ${CSEPROTO_SOURCE}) |
| 38 |
|
|
SET_TARGET_PROPERTIES(cseproto-static PROPERTIES LINKER_LANGUAGE C) |
| 39 |
|
|
SET_TARGET_PROPERTIES(cseproto-static PROPERTIES OUTPUT_NAME cseproto) |
| 40 |
|
|
|
| 41 |
|
|
install(TARGETS cseproto-static |
| 42 |
|
|
LIBRARY DESTINATION lib |
| 43 |
|
|
ARCHIVE DESTINATION lib |
| 44 |
|
|
) |
| 45 |
|
|
|
| 46 |
|
|
endif(BUILD_STATIC) |
| 47 |
|
|
|
| 48 |
|
|
if(BUILD_SHARED) |
| 49 |
|
|
message(STATUS "Building Shared lib.") |
| 50 |
|
|
add_library(cseproto-shared SHARED ${CSEPROTO_SOURCE}) |
| 51 |
|
|
SET_TARGET_PROPERTIES(cseproto-shared PROPERTIES LINKER_LANGUAGE C) |
| 52 |
|
|
SET_TARGET_PROPERTIES(cseproto-shared PROPERTIES OUTPUT_NAME cseproto) |
| 53 |
|
|
|
| 54 |
|
|
install(TARGETS cseproto-shared |
| 55 |
|
|
RUNTIME DESTINATION bin |
| 56 |
|
|
LIBRARY DESTINATION lib |
| 57 |
|
|
ARCHIVE DESTINATION lib |
| 58 |
|
|
) |
| 59 |
|
|
|
| 60 |
|
|
endif(BUILD_SHARED) |
| 61 |
|
|
|
| 62 |
14 |
moose |
if(ENABLE_TESTS) |
| 63 |
|
|
ENABLE_TESTING() |
| 64 |
|
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/tests) |
| 65 |
|
|
endif(ENABLE_TESTS) |
| 66 |
|
|
|
| 67 |
12 |
moose |
install(DIRECTORY include/cseproto DESTINATION include FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE) |