# Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # # @file CMakeLists.txt # @author Jacek Pielaszkiewicz (j.pielaszkie@samsung.com) # CMAKE_MINIMUM_REQUIRED (VERSION 2.6.2) PROJECT(Config) SET(_LIB_VERSION_ "0.0.1") SET(_LIB_SOVERSION_ "0") ## pkgconfig ################################################################### INCLUDE(FindPkgConfig) ## default CMAKE_INSTALL_* variables ########################################### INCLUDE(GNUInstallDirs) ## Compiler flags, depending on the build type ################################# IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE "DEBUG") ENDIF(NOT CMAKE_BUILD_TYPE) MESSAGE(STATUS "Build type: ${CMAKE_BUILD_TYPE}") # special case for a GCC < 4.7, assume rest is fine IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7) SET(CXX_11_STD "c++0x") else() SET(CXX_11_STD "c++11") endif() SET(CMAKE_C_FLAGS_PROFILING "-g -O0 -pg") SET(CMAKE_CXX_FLAGS_PROFILING "-g -std=${CXX_11_STD} -O0 -pg") SET(CMAKE_C_FLAGS_DEBUG "-g -O0 -ggdb") SET(CMAKE_CXX_FLAGS_DEBUG "-g -std=${CXX_11_STD} -O0 -ggdb") SET(CMAKE_C_FLAGS_RELEASE "-g -O2 -DNDEBUG") SET(CMAKE_CXX_FLAGS_RELEASE "-g -std=${CXX_11_STD} -O2 -DNDEBUG") SET(CMAKE_C_FLAGS_CCOV "-g -O2 --coverage") SET(CMAKE_CXX_FLAGS_CCOV "-g -std=${CXX_11_STD} -O2 --coverage") ADD_DEFINITIONS("-fPIC") # Position Independent Code ADD_DEFINITIONS("-Werror") # Make all warnings into errors ADD_DEFINITIONS("-Wall") # Generate all warnings ADD_DEFINITIONS("-Wextra") # Generate even more extra warnings ADD_DEFINITIONS("-pedantic") # Be pedantic ADD_DEFINITIONS("-pedantic-errors") # Make pedantic warnings into errors ADD_DEFINITIONS(-DPROGRAM_VERSION="${VERSION}") ADD_DEFINITIONS(-DPROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}") ## Subdirectories ############################################################## SET(SRC_FOLDER ${PROJECT_SOURCE_DIR}/src) IF(NOT DEFINED LIB_INSTALL_DIR) SET(LIB_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}") ENDIF(NOT DEFINED LIB_INSTALL_DIR) IF(NOT DEFINED INCLUDE_INSTALL_DIR) SET(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}") ENDIF(NOT DEFINED INCLUDE_INSTALL_DIR) ADD_SUBDIRECTORY(${SRC_FOLDER})