CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(storage-adaptor C) set(BUILD_TYPE "DEBUG") # variable holds path to config files set(CONFIG_FILES_PATH "" CACHE FILEPATH "Path to coniguration files") include_directories(${CMAKE_BINARY_DIR}) file(GLOB SRCS src/*.c) if(BUILD_TYPE STREQUAL "DEBUG") message("DEBUG build!") set(BUILD_TYPE_FLAGS "") add_definitions(-DDEBUG_ADAPTOR_PARAMS) elseif(BUILD_TYPE STREQUAL "RELEASE") message("RELEASE build!") set(BUILD_TYPE_FLAGS "-DRELEASE") else() message(FATAL_ERROR "####\nBUILD_TYPE should be DEBUG or RELEASE! Have: ${BUILD_TYPE} . Aborting.\n####") endif(BUILD_TYPE STREQUAL "DEBUG") set(PREFIX "/usr") set(BINDIR "${PREFIX}/bin") set(LIBDIR "${PREFIX}/lib") include_directories(${CMAKE_SOURCE_DIR}/inc) include(FindPkgConfig) pkg_check_modules(pkgs REQUIRED glib-2.0 dlog plugin-config libsmack) foreach(flag ${pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") endforeach(flag) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -std=gnu99 -D_GNU_SOURCE") SET(CMAKE_C_FLAGS_DEBUG "-O0 -g") SET(CMAKE_C_FLAGS_RELEASE "-O2") ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS} ) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -ldl -lm) INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIBDIR}) INSTALL(FILES ${CMAKE_SOURCE_DIR}/inc/storage-adaptor.h DESTINATION /usr/include/storage-adaptor/) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/storage-adaptor.pc.in ${CMAKE_SOURCE_DIR}/storage-adaptor.pc @ONLY) INSTALL(FILES ${CMAKE_SOURCE_DIR}/storage-adaptor.pc DESTINATION ${LIBDIR}/pkgconfig)