Cleanup cmake/spec infrastructure 32/251432/5
authorDariusz Michaluk <d.michaluk@samsung.com>
Wed, 13 Jan 2021 11:21:37 +0000 (12:21 +0100)
committerDariusz Michaluk <d.michaluk@samsung.com>
Fri, 22 Jan 2021 15:33:53 +0000 (16:33 +0100)
Change-Id: I17436b498832c39c19393d752c2d79ee81bbaa72

CMakeLists.txt
packaging/privilege-info.spec
privilege-info.pc.in
src/CMakeLists.txt
test/CMakeLists.txt

index 0ed70da..c8b66fa 100644 (file)
@@ -1,22 +1,33 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
+PROJECT(privilege-info VERSION 0.0.7 LANGUAGES C)
 
-SET(CMAKE_VERBOSE_MAKEFILE OFF)
+INCLUDE(GNUInstallDirs)
+INCLUDE(FindPkgConfig)
 
-IF("${USE_AUTOSTART}" STREQUAL "1")
-    ADD_DEFINITIONS("-DUSE_AUTOSTART")
-ENDIF()
+IF(NOT CMAKE_BUILD_TYPE)
+       SET(CMAKE_BUILD_TYPE "RELEASE")
+ENDIF(NOT CMAKE_BUILD_TYPE)
 
-ADD_DEFINITIONS("-DCLIENT_IPC_THREAD")
-ADD_DEFINITIONS("-DUSE_IPC_EPOLL")
+SET(CMAKE_C_FLAGS_DEBUG        "-std=c11 -O0 -ggdb -Wp,-U_FORTIFY_SOURCE")
+SET(CMAKE_C_FLAGS_RELEASE      "-std=c11 -O2 -DNDEBUG")
 
-ADD_DEFINITIONS("-Werror -Wall -Wextra")
+ADD_DEFINITIONS("-Werror")
+ADD_DEFINITIONS("-Wall")
+ADD_DEFINITIONS("-Wextra")
 
-STRING(REGEX MATCH "([^.]*)" API_VERSION "${VERSION}")
-ADD_DEFINITIONS("-DAPI_VERSION=\"$(API_VERSION)\"")
+SET(CMAKE_POSITION_INDEPENDENT_CODE "True")
+SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
 
-CONFIGURE_FILE(privilege-info.pc.in privilege-info.pc @ONLY)
+PKG_CHECK_MODULES(PRIVILEGE_INFO_DEPS REQUIRED
+       glib-2.0
+       dlog
+       security-privilege-manager
+       capi-base-common
+       capi-system-info)
+
+INCLUDE_DIRECTORIES(SYSTEM ${PRIVILEGE_INFO_DEPS_INCLUDE_DIRS})
+LINK_DIRECTORIES(${PRIVILEGE_INFO_DEPS_LIBRARY_DIRS})
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/include)
 
-MESSAGE("build privilege-info")
 ADD_SUBDIRECTORY(src)
-MESSAGE("build tc-privilege-info")
 ADD_SUBDIRECTORY(test)
index f4c306e..5a1cdea 100644 (file)
@@ -1,3 +1,5 @@
+%{!?build_type:%global build_type RELEASE}
+
 Name:    privilege-info
 Summary: Privilege Information
 Version: 0.0.7
@@ -8,17 +10,13 @@ Source0: %{name}-%{version}.tar.gz
 
 Requires(post):   /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
+
 BuildRequires: cmake
 BuildRequires: pkgconfig(glib-2.0)
 BuildRequires: pkgconfig(dlog)
 BuildRequires: pkgconfig(capi-base-common)
-BuildRequires: pkgconfig(security-privilege-manager)
-BuildRequires: pkgconfig(libtzplatform-config)
 BuildRequires: pkgconfig(capi-system-info)
-%if 0%{?gcov:1}
-BuildRequires: lcov
-%endif
-Requires: tizen-locale
+BuildRequires: pkgconfig(security-privilege-manager)
 
 %description
 Provides Privilege Information(Privilege Info) API
@@ -29,96 +27,45 @@ Group:   Security/Development
 Requires: %{name} = %{version}-%{release}
 
 %description -n privilege-info-devel
-The Privilege Info API provides functions to get privilege information (DEV)
+The Privilege Info API provides functions to get privilege information (Development)
 
-%package -n tc-privilege-info
+%package -n privilege-info-tests
 Summary: Privilege Info TC
 Group:   Security/Testing
 Requires: %{name} = %{version}-%{release}
 
-%description -n tc-privilege-info
+%description -n privilege-info-tests
 Privilege Info API Internal Test
 
-%if 0%{?gcov:1}
-%package gcov
-Summary:  Privilege Info(gcov)
-Group:    Security/Testing
-%description gcov
-New Privilege Info gcov objects
-%endif
-
-
 %prep
 %setup -q
 
 %build
-
-export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE"
-export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE"
-export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE"
-
-%if 0%{?gcov:1}
-export CFLAGS+=" -fprofile-arcs -ftest-coverage"
-export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
-export FFLAGS+=" -fprofile-arcs -ftest-coverage"
-export LDFLAGS+=" -lgcov"
-%endif
-
-echo cmake . -DPREFIX=%{_prefix} \
-        -DLIBDIR=%{_libdir} \
-        -DINCLUDEDIR=%{_includedir} \
-        -DCMAKE_BUILD_TYPE=%{build_type} \
-        -DVERSION=%{version} \
-        -DTZ_SYS_RO_PACKAGES=%TZ_SYS_RO_PACKAGES \
-        -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP \
-        -DBUILD_GCOV={?gcov:1}%{!?gcov:0}
-
-cmake . -DPREFIX=%{_prefix} \
-        -DLIBDIR=%{_libdir} \
-        -DINCLUDEDIR=%{_includedir} \
-        -DCMAKE_BUILD_TYPE=%{build_type} \
-        -DVERSION=%{version} \
-        -DTZ_SYS_RO_PACKAGES=%TZ_SYS_RO_PACKAGES \
-        -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP \
-        -DBUILD_GCOV={?gcov:1}%{!?gcov:0}
+%cmake . -DCMAKE_BUILD_TYPE=%{build_type}
 
 make %{?jobs:-j%jobs}
 
-%if 0%{?gcov:1}
-mkdir -p gcov-obj
-find . \( -name '*.gcno' ! -name 'tc_*' \) -exec cp '{}' gcov-obj ';'
-%endif
-
 %install
 rm -rf %{buildroot}
-
 %make_install
 
-%if 0%{?gcov:1}
-mkdir -p %{buildroot}%{_datadir}/gcov/obj
-install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
-%endif
+%clean
+rm -rf %{buildroot}
 
 %post -n privilege-info -p /sbin/ldconfig
 %postun -n privilege-info -p /sbin/ldconfig
 
 %files -n privilege-info
-%{_libdir}/libprivilege-info.so*
 %license LICENSE.Apache-2.0
 %manifest packaging/privilege-info.manifest
+%{_libdir}/libprivilege-info.so.*
 
 %files -n privilege-info-devel
+%manifest packaging/privilege-info.manifest
+%{_libdir}/libprivilege-info.so
 %{_includedir}/privilege_information.h
 %{_libdir}/pkgconfig/privilege-info.pc
 
-%files -n tc-privilege-info
-%{_bindir}/tc-privilege-info
-
-%if 0%{?gcov:1}
-%files gcov
-%{_datadir}/gcov/obj/*
-%endif
-
-%clean
-rm -rf %{buildroot}
-
+%files -n privilege-info-tests
+%manifest packaging/privilege-info.manifest
+%{_bindir}/privilege-info-tests
index 050d8ad..6a257c0 100644 (file)
@@ -1,14 +1,11 @@
-# Package Information for pkg-config
-
-prefix=@PREFIX@
-exec_prefix=/usr
-libdir=@LIBDIR@
-includedir=@INCLUDEDIR@
-
-Name: @PC_NAME@
-Description: @PACKAGE_DESCRIPTION@
-Version: @VERSION@
-Requires: @PC_REQUIRED@ 
-Libs: -L${libdir} @PC_LDFLAGS@
-Cflags: -I${includedir} @PC_CFLAGS@
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=@CMAKE_INSTALL_PREFIX@
+libdir=@LIB_INSTALL_DIR@
+includedir=@INCLUDE_INSTALL_DIR@
 
+Name: privilege-info
+Description: Provides Privilege Information(Privilege Info) API
+Version: @PROJECT_VERSION@
+Requires: glib-2.0
+Libs: -L${libdir} -lprivilege-info
+Cflags: -I${includedir}
index a0cf43c..f0bd2ae 100644 (file)
@@ -1,46 +1,20 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-SET(PACKAGE_NAME privilege-info)
-PROJECT(${PACKAGE_NAME})
-
-SET(PRIV_INFO_SOURCES
-    ${PROJECT_SOURCE_DIR}/privilege_information.c
-)
-
-INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)
-
-SET(requires glib-2.0 dlog security-privilege-manager capi-system-info)
-INCLUDE(FindPkgConfig)
-pkg_check_modules(${PACKAGE_NAME} REQUIRED ${requires})
-FOREACH(flag ${${PACKAGE_NAME}_CFLAGS})
-    SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-
-# Compiler flags
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fPIC -fvisibility=hidden -D_WITH_SYSTEMD_")
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${PACKAGE_NAME_CFLAGS}")
-
-########################################################
-# For libprivilege-info libraries(.so)
-########################################################
-
-SET(TARGET_PRIV_INFO_LIB "privilege-info")
-SET(SO_VERSION 1)
-SET(VERSION "${SO_VERSION}.0.0")
-
-ADD_LIBRARY(${TARGET_PRIV_INFO_LIB} SHARED ${PRIV_INFO_SOURCES})
-
-SET_TARGET_PROPERTIES(${TARGET_PRIV_INFO_LIB} PROPERTIES
-    SOVERSION ${SO_VERSION}
-    VERSION ${VERSION}
-)
-
-TARGET_LINK_LIBRARIES(${TARGET_PRIV_INFO_LIB} ${${PACKAGE_NAME}_LDFLAGS})
-
-#######################################################
-
-INSTALL(TARGETS ${PACKAGE_NAME} DESTINATION ${LIBDIR})
-INSTALL(FILES ${PROJECT_SOURCE_DIR}/include/privilege_information.h DESTINATION ${INCLUDEDIR})
-
-SET(PC_LDFLAGS -l${PACKAGE_NAME})
-CONFIGURE_FILE(../${PACKAGE_NAME}.pc.in ${PACKAGE_NAME}.pc @ONLY)
-INSTALL(FILES ${PACKAGE_NAME}.pc DESTINATION ${LIBDIR}/pkgconfig)
+SET(TARGET_LIB "privilege-info")
+ADD_LIBRARY(${TARGET_LIB} SHARED privilege_information.c)
+TARGET_LINK_LIBRARIES(${TARGET_LIB} ${PRIVILEGE_INFO_DEPS_LIBRARIES})
+
+SET_TARGET_PROPERTIES(${TARGET_LIB}
+       PROPERTIES
+       VERSION "1.0.0"
+       SOVERSION 1
+       C_VISIBILITY_PRESET hidden)
+
+INSTALL(TARGETS ${TARGET_LIB} LIBRARY)
+
+INSTALL(FILES
+       ${CMAKE_SOURCE_DIR}/src/include/privilege_information.h
+       DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+CONFIGURE_FILE(../privilege-info.pc.in privilege-info.pc @ONLY)
+INSTALL(FILES
+       ${CMAKE_CURRENT_BINARY_DIR}/privilege-info.pc
+       DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
index 8da99db..a402a1b 100644 (file)
@@ -1,24 +1,5 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-SET(PACKAGE_NAME tc-privilege-info)
-PROJECT(${PACKAGE_NAME})
+SET(TARGET_TESTS "privilege-info-tests")
+ADD_EXECUTABLE(${TARGET_TESTS} tc_privilege_info.c ../src/privilege_information.c)
+TARGET_LINK_LIBRARIES(${TARGET_TESTS} ${PRIVILEGE_INFO_DEPS_LIBRARIES})
 
-SET(TC1_NAME tc-privilege-info)
-
-SET(TC1_SRCS ${PROJECT_SOURCE_DIR}/tc_privilege_info.c)
-
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/include)
-
-SET(requires glib-2.0 dlog)
-INCLUDE(FindPkgConfig)
-pkg_check_modules(${PACKAGE_NAME} REQUIRED ${requires})
-FOREACH(flag ${${PACKAGE_NAME}_CFLAGS})
-    SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fPIC -Wall -fvisibility=hidden -D_WITH_SYSTEMD_")
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${PACKAGE_NAME_CFLAGS}")
-
-ADD_EXECUTABLE(${TC1_NAME} ${TC1_SRCS})
-TARGET_LINK_LIBRARIES(${TC1_NAME} "privilege-info")
-
-INSTALL(TARGETS ${TC1_NAME} DESTINATION /usr/bin)
+INSTALL(TARGETS ${TARGET_TESTS} RUNTIME)