113 lines
3.7 KiB
CMake
113 lines
3.7 KiB
CMake
######################################################################################
|
|
### 1) Set the application properties
|
|
######################################################################################
|
|
|
|
# Checks cmake version compatibility
|
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
|
|
|
|
PROJECT(DO)
|
|
|
|
SET(PROJECT_VERSION_MAJOR 1)
|
|
SET(PROJECT_VERSION_MINOR 0)
|
|
SET(PROJECT_VERSION_PATCH 0)
|
|
SET(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
|
|
|
######################################################################################
|
|
|
|
|
|
######################################################################################
|
|
### 2) Prepare some useful variables
|
|
######################################################################################
|
|
|
|
SET(DO_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
SET(DO_BIN_DIR "${CMAKE_CURRENT_BINARY_DIR}")
|
|
|
|
######################################################################################
|
|
|
|
|
|
######################################################################################
|
|
### 3) Include useful features
|
|
######################################################################################
|
|
|
|
INCLUDE(FindDoxygen)
|
|
|
|
INCLUDE(FindPkgConfig)
|
|
|
|
PKG_CHECK_MODULES(EO eo REQUIRED)
|
|
|
|
INCLUDE_DIRECTORIES(${EO_INCLUDE_DIR})
|
|
LINK_DIRECTORIES(${EO_LIBRARY_DIRS})
|
|
|
|
######################################################################################
|
|
|
|
|
|
######################################################################################
|
|
### 4) Include header files path
|
|
######################################################################################
|
|
|
|
INCLUDE_DIRECTORIES(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
|
)
|
|
|
|
######################################################################################
|
|
|
|
|
|
######################################################################################
|
|
### 5) Set compiler definitions
|
|
######################################################################################
|
|
|
|
IF(UNIX)
|
|
# enable warnings
|
|
ADD_DEFINITIONS( -Wall -W -Wextra )
|
|
# ADD_DEFINITIONS( -Weffc++)
|
|
# ADD_DEFINITIONS( -g3 )
|
|
ENDIF()
|
|
|
|
######################################################################################
|
|
|
|
|
|
######################################################################################
|
|
### 6) Prepare some variables for CMAKE usage
|
|
######################################################################################
|
|
|
|
SET(SAMPLE_SRCS)
|
|
|
|
######################################################################################
|
|
|
|
|
|
######################################################################################
|
|
### 7) Now where we go ?
|
|
######################################################################################
|
|
|
|
ADD_SUBDIRECTORY(src)
|
|
ADD_SUBDIRECTORY(application)
|
|
ADD_SUBDIRECTORY(test)
|
|
ADD_SUBDIRECTORY(doc)
|
|
|
|
######################################################################################
|
|
|
|
|
|
######################################################################################
|
|
### 8) Create executable, link libraries and prepare target
|
|
######################################################################################
|
|
|
|
SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
|
|
|
|
LINK_DIRECTORIES(${LIBRARY_OUTPUT_PATH})
|
|
|
|
ADD_LIBRARY(${PROJECT_NAME} STATIC ${SAMPLE_SRCS})
|
|
#ADD_LIBRARY(${PROJECT_NAME} SHARED ${SAMPLE_SRCS})
|
|
|
|
# INSTALL(
|
|
# TARGETS ${LIBRARY_OUTPUT_PATH}/lib${PROJECT_NAME}.a
|
|
# DESTINATION lib
|
|
# COMPONENT libraries
|
|
# )
|
|
|
|
######################################################################################
|
|
### 9) Include packaging
|
|
######################################################################################
|
|
|
|
INCLUDE(Packaging.cmake)
|
|
|
|
######################################################################################
|