Line # Revision Author
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)