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)