X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=build%2Ftizen-cmake%2FCMakeLists.txt;h=fb2b224949e0941c354bf2fbea6a00a10e572748;hb=9fc7e32fe52399ad7cb4e6e0c607c2eb1f3f477a;hp=baf23b070403ae52bb7b89f77439330494be76dc;hpb=f2594e6731131985fc446658583aeec8657bcee5;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/build/tizen-cmake/CMakeLists.txt b/build/tizen-cmake/CMakeLists.txt index baf23b0..fb2b224 100644 --- a/build/tizen-cmake/CMakeLists.txt +++ b/build/tizen-cmake/CMakeLists.txt @@ -21,16 +21,21 @@ OPTION(ENABLE_DEBUG "Enable Debug" OFF) OPTION(ENABLE_BACKTRACE "Enable Backtrace" OFF) OPTION(ENABLE_LOCK_BACKTRACE "Enable" OFF) OPTION(ENABLE_COVERAGE "Coverage" OFF) -SET(GLES_VERSION 20 CACHE INTEGER "Gles Version") # Set up compiler definitions +IF(CMAKE_BUILD_TYPE MATCHES Debug) + MESSAGE( STATUS "CMAKE_BUILD_TYPE: " Debug ) + SET(ENABLE_DEBUG ON) +ELSE() + MESSAGE( STATUS "CMAKE_BUILD_TYPE: " Release ) +ENDIF() + ADD_DEFINITIONS(-DPLATFORM_TIZEN -DDALI_COMPILATION) -ADD_DEFINITIONS(-DDALI_GLES_VERSION=${GLES_VERSION}) ADD_DEFINITIONS(-DPIC -DSTDC_HEADERS) IF("${ARCH}" STREQUAL "arm") - ADD_DEFINITIONS("-DTARGET") + ADD_DEFINITIONS("-DTARGET") ENDIF("${ARCH}" STREQUAL "arm") IF( NOT ${ENABLE_EXPORTALL} AND NOT ${ENABLE_DEBUG} ) @@ -56,33 +61,44 @@ SET( EXEC_PREFIX ${CMAKE_INSTALL_PREFIX}) # from root/build/tizen, get back to root SET(ROOT_SRC_DIR ${CMAKE_SOURCE_DIR}/../..) -# Requires the following variables to be setup -# @PREFIX@ @EXEC_PREFIX@ @DALI_VERSION@ @LIBDIR@ @DEV_INCLUDE_PATH@ -SET(INCLUDE_DIR $ENV{includedir}) -SET(DEV_INCLUDE_PATH ${INCLUDE_DIR}) -SET(LIB_DIR $ENV{libdir}) -CONFIGURE_FILE( dali-core.pc.in dali-core.pc ) - -MESSAGE( STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE} ) -if(CMAKE_BUILD_TYPE MATCHES Debug) - MESSAGE("Setting variable: DEBUG_ENABLED") - SET(DEBUG_ENABLED "1") +# Make sure the path is absolute +GET_FILENAME_COMPONENT(ROOT_SRC_DIR ${ROOT_SRC_DIR} ABSOLUTE) + +# Set up the include dir +SET( INCLUDE_DIR $ENV{includedir} ) +IF( NOT INCLUDE_DIR ) + SET( INCLUDE_DIR ${PREFIX}/include ) +ENDIF() + +# Set up the lib dir +SET( LIB_DIR $ENV{libdir} ) +IF( NOT LIB_DIR ) + SET( LIB_DIR ${PREFIX}/lib ) ENDIF() +# Configure the pkg-config file +# Requires the following variables to be setup: +# @PREFIX@ @EXEC_PREFIX@ @DALI_VERSION@ @LIB_DIR@ @DEV_INCLUDE_PATH@ +SET( DEV_INCLUDE_PATH ${INCLUDE_DIR} ) +SET( CORE_PKG_CFG_FILE dali-core.pc ) +CONFIGURE_FILE( ${CORE_PKG_CFG_FILE}.in ${CORE_PKG_CFG_FILE} @ONLY ) + # Set up compiler flags and warnings #ADD_COMPILE_OPTIONS( -std=c++11 -ggdb ) ADD_COMPILE_OPTIONS( -std=c++11 -gdwarf-4 ) ADD_COMPILE_OPTIONS( -Wnon-virtual-dtor -Woverloaded-virtual -Wold-style-cast ) -ADD_COMPILE_OPTIONS( -Werror -Wall -Wextra -Wno-unused-parameter -Wfloat-equal ) -IF( ENABLE_DEBUG ) - ADD_COMPILE_OPTIONS( -O0 ) -ELSE( ENABLE_DEBUG ) - ADD_COMPILE_OPTIONS( -Os ) -ENDIF( ENABLE_DEBUG ) +# TODO: Clang is a lot more strict with warnings, we should address +# those issues at some point. +IF( NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" ) + ADD_COMPILE_OPTIONS( -Werror ) +ENDIF() + +ADD_COMPILE_OPTIONS( -Wall -Wextra -Wno-unused-parameter -Wfloat-equal ) -IF( ENABLE_COVERAGE OR CXXFLAGS MATCHES --coverage) +IF( ENABLE_COVERAGE OR "$ENV{CXXFLAGS}" MATCHES --coverage ) ADD_COMPILE_OPTIONS( --coverage ) + SET(ENABLE_COVERAGE ON) SET(COVERAGE --coverage) ENDIF() @@ -91,17 +107,29 @@ INCLUDE_DIRECTORIES( ) SET(SOURCE_DIR "${ROOT_SRC_DIR}/dali") +SET(PACKAGE_DOXY_SRC_DIR "${ROOT_SRC_DIR}/doc") SET(SOURCES "") +# Run sources update script automatically +EXECUTE_PROCESS( COMMAND /bin/bash ${CMAKE_CURRENT_SOURCE_DIR}/update-file-lists.sh + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) + # could use INCLUDE to get the source lists a different way; # would then need to specify a build folder somehow... -ADD_SUBDIRECTORY( ${SOURCE_DIR}/internal dali/internal ) -ADD_SUBDIRECTORY( ${SOURCE_DIR}/integration-api dali/integration-api ) -ADD_SUBDIRECTORY( ${SOURCE_DIR}/public-api dali/public-api ) -ADD_SUBDIRECTORY( ${SOURCE_DIR}/devel-api dali/devel-api ) +INCLUDE( ${ROOT_SRC_DIR}/dali/internal/file-list.cmake ) +INCLUDE( ${ROOT_SRC_DIR}/dali/integration-api/file-list.cmake ) +INCLUDE( ${ROOT_SRC_DIR}/dali/public-api/file-list.cmake ) +INCLUDE( ${ROOT_SRC_DIR}/dali/devel-api/file-list.cmake ) -ADD_LIBRARY( ${name} SHARED ${SOURCES} ) +ADD_SUBDIRECTORY( ${PACKAGE_DOXY_SRC_DIR} doc ) + +SET(LIBTYPE SHARED) +IF(DEFINED STATIC) + SET(LIBTYPE STATIC) +ENDIF() + +ADD_LIBRARY( ${name} ${LIBTYPE} ${SOURCES} ) TARGET_LINK_LIBRARIES( ${name} -lpthread @@ -116,7 +144,10 @@ SET_TARGET_PROPERTIES( ${name} ) # Install the library so file and symlinks -INSTALL( TARGETS ${name} DESTINATION ${PREFIX}/lib ) +INSTALL( TARGETS ${name} DESTINATION ${LIB_DIR} ) + +# Install the pkg-config file +INSTALL( FILES ${CMAKE_BINARY_DIR}/${CORE_PKG_CFG_FILE} DESTINATION ${LIB_DIR}/pkgconfig ) # macro for installing headers by replacing prefix. (TODO, investigate # if there is a CMAKE way of doing this automatically) @@ -125,14 +156,15 @@ MACRO(INSTALL_HEADERS_WITH_DIRECTORY HEADER_LIST STRIP_PREFIX REPLACE_PREFIX) FOREACH(HEADER ${${HEADER_LIST}}) STRING(REGEX MATCH "(.*)[/]" DIR ${HEADER}) STRING(REPLACE ${SPREFIX} ${REPLACE_PREFIX} NEWDIR ${DIR}) - INSTALL(FILES ${HEADER} DESTINATION ${PREFIX}/include/${NEWDIR}) + INSTALL(FILES ${HEADER} DESTINATION ${INCLUDE_DIR}/${NEWDIR}) ENDFOREACH(HEADER) ENDMACRO(INSTALL_HEADERS_WITH_DIRECTORY) # Install headers using lists defined by ADD_SUBDIRECTORY -INSTALL_HEADERS_WITH_DIRECTORY(PUBLIC_API_HEADERS ${SOURCE_DIR} "dali") -INSTALL_HEADERS_WITH_DIRECTORY(DEVEL_API_HEADERS ${SOURCE_DIR} "dali") -INSTALL_HEADERS_WITH_DIRECTORY(INTEGRATION_API_HEADERS ${SOURCE_DIR} "dali") +INSTALL_HEADERS_WITH_DIRECTORY(PUBLIC_API_HEADERS ${ROOT_SRC_DIR}/dali "dali") +INSTALL_HEADERS_WITH_DIRECTORY(DEVEL_API_HEADERS ${ROOT_SRC_DIR}/dali "dali") +INSTALL_HEADERS_WITH_DIRECTORY(INTEGRATION_API_HEADERS ${ROOT_SRC_DIR}/dali "dali") +INSTALL_HEADERS_WITH_DIRECTORY(PACKAGE_DOXY_HEADERS ${PACKAGE_DOXY_SRC_DIR} "dali/doc" ) IF(UNIX) # Define custom rules for coverage @@ -191,7 +223,11 @@ ENDIF(UNIX) MESSAGE( STATUS "Configuration:\n" ) MESSAGE( STATUS "Prefix: " ${PREFIX} ) +MESSAGE( STATUS "Lib Dir: " ${LIB_DIR} ) +MESSAGE( STATUS "Include Dir: " ${INCLUDE_DIR} ) MESSAGE( STATUS "Debug build: " ${ENABLE_DEBUG} ) MESSAGE( STATUS "Backtrace: " ${ENABLE_BACKTRACE} ) MESSAGE( STATUS "Scoped Lock backtrace: " ${ENABLE_LOCK_BACKTRACE} ) MESSAGE( STATUS "Coverage: " ${ENABLE_COVERAGE} ) +MESSAGE( STATUS "CXXFLAGS: " ${CMAKE_CXX_FLAGS} ) +MESSAGE( STATUS "LDFLAGS: " ${CMAKE_SHARED_LINKER_FLAGS_INIT}${CMAKE_SHARED_LINKER_FLAGS} )