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)