Remove unit tests
[platform/core/base/bundle.git] / CMakeLists.txt
index 9a298eb..b355e28 100644 (file)
@@ -1,55 +1,66 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(bundle C)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
+PROJECT(bundle C CXX)
+IF("${VERSION}" STREQUAL "")
+       MESSAGE(FATAL_ERROR "VERSION is not defined")
+ENDIF()
+STRING(REGEX MATCH "^[0-9]+" VERSION_MAJOR ${VERSION})
+IF("${VERSION_MAJOR}" STREQUAL "")
+       MESSAGE(FATAL_ERROR "can't get VERSION_MAJOR")
+ENDIF()
 
-### Get VERSION from debian/changelog
-file(STRINGS debian/changelog version_line LIMIT_COUNT 1 REGEX "(.*)")
-string(REGEX REPLACE ".*\\(\([0-9]+:\)*\([0-9a-zA-Z.]*\).*\\).*" "\\2" VERSION ${version_line})  # Get version
-string(REGEX REPLACE "^\([0-9]+\)\\..*" "\\1" VERSION_MAJOR ${VERSION})  # Get major version
-message(STATUS "Version from debian/changelog: ${VERSION},  Major version: ${VERSION_MAJOR}")
-
-### Required packages
 INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs REQUIRED glib-2.0 dlog)
+PKG_CHECK_MODULES(pkgs REQUIRED
+       glib-2.0 dlog capi-base-common json-glib-1.0
+)
+
 FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -flto -Wall -Werror -Winline -Wno-noexcept-type")
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++11")
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
 
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src)
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/)
 
-### Local include directories
-include_directories(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/src)
+AUX_SOURCE_DIRECTORY(src SOURCES)
 
-### Build
-add_library(bundle SHARED 
-               src/bundle.c
-               src/keyval_type.c
-               src/keyval.c
-               src/keyval_array.c
-               )
-set_target_properties(bundle PROPERTIES SOVERSION ${VERSION_MAJOR})
-set_target_properties(bundle PROPERTIES VERSION ${VERSION})
-target_link_libraries(bundle ${pkgs_LDFLAGS})
+ADD_LIBRARY (${PROJECT_NAME} SHARED ${SOURCES})
 
+SET_TARGET_PROPERTIES(bundle PROPERTIES SOVERSION ${VERSION_MAJOR})
+SET_TARGET_PROPERTIES(bundle PROPERTIES VERSION "${VERSION}")
+
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS} -fPIE")
+SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LINK_FLAGS "-pie")
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
 
 ### Make pkgconfig file
 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/bundle.pc.in ${CMAKE_BINARY_DIR}/bundle.pc @ONLY)
 
-
 ### Install
-install(TARGETS bundle
-       DESTINATION lib
-       )
-install(FILES 
-       ${CMAKE_SOURCE_DIR}/include/bundle.h 
-       ${CMAKE_SOURCE_DIR}/include/SLP_bundle_PG.h 
-       DESTINATION include/
-               )
-install(FILES ${CMAKE_BINARY_DIR}/bundle.pc 
-               DESTINATION lib/pkgconfig/
-               )
-
-
-### Test
-add_subdirectory(test)
+INSTALL(TARGETS bundle DESTINATION ${LIB_INSTALL_DIR})
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION include/)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/bundle.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig/)
+
+ADD_SUBDIRECTORY(parcel)
+ADD_DEPENDENCIES(parcel bundle)
+
+IF(NOT DEFINED MINIMUM_BUILD)
+ENABLE_TESTING()
+SET(BUNDLE_UNITTESTS bundle_unittests)
+ADD_TEST(NAME ${BUNDLE_UNITTESTS} COMMAND ${BUNDLE_UNITTESTS}
+        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/bundle_unittests)
+
+ADD_SUBDIRECTORY(tests)
+ADD_DEPENDENCIES(bundle_unittests bundle)
+
+SET(PARCEL_UNITTESTS parcel_unittests)
+ADD_TEST(NAME ${PARCEL_UNITTESTS} COMMAND ${PARCEL_UNITTESTS}
+        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/parcel_unittests)
 
+ADD_DEPENDENCIES(parcel_unittests parcel)
+ENDIF(NOT DEFINED MINIMUM_BUILD)