From: Youngjae Shin Date: Wed, 12 Aug 2020 00:30:49 +0000 (+0900) Subject: [cleanup]revise build scripts and packaging X-Git-Tag: submit/tizen/20210805.124520~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dd24614d7902d24d4ca35133d860e703d65f0e55;p=platform%2Fcore%2Fapi%2Fwifi-manager.git [cleanup]revise build scripts and packaging Change-Id: I03496fcdb3d0c713b1f40e15940fed29fc24cfed --- diff --git a/CMakeLists.txt b/CMakeLists.txt index f55da20..83132c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,105 +1,33 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -SET(fw_name "capi-network-wifi-manager") - -PROJECT(${fw_name}) - -SET(PREFIX ${CMAKE_INSTALL_PREFIX}) - -SET(LIB ${LIB_PATH}) -SET(LIBDIR ${PREFIX}/${LIB_PATH}) - -SET(INC_DIR include) -INCLUDE_DIRECTORIES(${INC_DIR}) - -SET(dependents "dlog vconf capi-base-common capi-system-info glib-2.0 gio-2.0 gthread-2.0 ") -SET(pc_dependents "capi-base-common") +CMAKE_MINIMUM_REQUIRED(VERSION 3.9) +PROJECT("capi-network-wifi-manager") INCLUDE(FindPkgConfig) -pkg_check_modules(${fw_name} REQUIRED ${dependents} ${APPFW_REQUIRED_PKGS}) -FOREACH(flag ${${fw_name}_CFLAGS}) - SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") -ENDFOREACH(flag) - -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -fvisibility=hidden") -#SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall") -SET(CMAKE_C_FLAGS_DEBUG "-O0 -g") - -IF("${ARCH}" STREQUAL "arm") - ADD_DEFINITIONS("-DTARGET") -ENDIF("${ARCH}" STREQUAL "arm") +INCLUDE_DIRECTORIES(include) -ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") -ADD_DEFINITIONS("-DTIZEN_DEBUG") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -Wall -Werror -fvisibility=hidden") +SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie") -SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=${LIBDIR}") +pkg_check_modules(pkgs REQUIRED dlog vconf capi-base-common capi-system-info glib-2.0 + gio-2.0 gthread-2.0) +INCLUDE_DIRECTORIES(${pkgs_INCLUDE_DIRS}) +LINK_DIRECTORIES(${pkgs_LIBRARY_DIRS}) -aux_source_directory(src SOURCES) -ADD_LIBRARY(${fw_name} SHARED ${SOURCES}) +FILE(GLOB SRCS src/*.c) +ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS}) +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LIBRARIES}) +TARGET_COMPILE_OPTIONS(${PROJECT_NAME} PUBLIC ${pkgs_CFLAGS_OTHER}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${FULLVER} + SOVERSION ${MAJORVER}) +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR}) -TARGET_LINK_LIBRARIES(${fw_name} ${${fw_name}_LDFLAGS}) +INSTALL(DIRECTORY include/ DESTINATION ${INCLUDE_INSTALL_DIR}/network) -SET_TARGET_PROPERTIES(${fw_name} - PROPERTIES - VERSION ${FULLVER} - SOVERSION ${MAJORVER} - CLEAN_DIRECT_OUTPUT 1 -) - -INSTALL(TARGETS ${fw_name} DESTINATION ${LIB}) -INSTALL( - DIRECTORY ${INC_DIR}/ DESTINATION include/network - FILES_MATCHING - PATTERN "network_*.h" EXCLUDE - PATTERN "wifi_*.h" EXCLUDE - PATTERN "${INC_DIR}/*.h" - ) - -SET(PC_NAME ${fw_name}) -SET(PC_REQUIRED ${pc_dependents}) -SET(PC_LDFLAGS -l${fw_name}) - -CONFIGURE_FILE( - ${fw_name}.pc.in - ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc - @ONLY -) -INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc DESTINATION ${LIB}/pkgconfig) +CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY) +INSTALL(FILES ${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) ADD_SUBDIRECTORY(tools/manager-tool) ADD_SUBDIRECTORY(tools/connection-tool) -ADD_SUBDIRECTORY(tests) IF(BUILD_GTESTS) ADD_SUBDIRECTORY(tests) ENDIF(BUILD_GTESTS) - -IF(UNIX) - -ADD_CUSTOM_TARGET (distclean @echo cleaning for source distribution) -ADD_CUSTOM_COMMAND( - DEPENDS clean - COMMENT "distribution clean" - COMMAND find - ARGS . - -not -name config.cmake -and \( - -name tester.c -or - -name Testing -or - -name CMakeFiles -or - -name cmake.depends -or - -name cmake.check_depends -or - -name CMakeCache.txt -or - -name cmake.check_cache -or - -name *.cmake -or - -name Makefile -or - -name core -or - -name core.* -or - -name gmon.out -or - -name install_manifest.txt -or - -name *.pc -or - -name *~ \) - | grep -v TC | xargs rm -rf - TARGET distclean - VERBATIM -) - -ENDIF(UNIX) diff --git a/capi-network-wifi-manager.pc.in b/capi-network-wifi-manager.pc.in index d86dd03..d161205 100644 --- a/capi-network-wifi-manager.pc.in +++ b/capi-network-wifi-manager.pc.in @@ -1,13 +1,10 @@ -# Package Information for pkg-config - -prefix=@PREFIX@ -exec_prefix=/usr +prefix=@CMAKE_INSTALL_PREFIX@ libdir=@LIB_INSTALL_DIR@ includedir=@INCLUDE_INSTALL_DIR@/network -Name: @PC_NAME@ -Description: @PACKAGE_DESCRIPTION@ +Name: @PROJECT_NAME@ +Description: Tizen Network Wi-Fi Manager Version: @VERSION@ -Requires: @PC_REQUIRED@ -Libs: -L${libdir} @PC_LDFLAGS@ +Requires: capi-base-common +Libs: -L${libdir} -l@PROJECT_NAME@ Cflags: -I${includedir} diff --git a/packaging/capi-network-wifi-manager.spec b/packaging/capi-network-wifi-manager.spec index b315783..ab659af 100644 --- a/packaging/capi-network-wifi-manager.spec +++ b/packaging/capi-network-wifi-manager.spec @@ -16,39 +16,39 @@ BuildRequires: pkgconfig(capi-base-common) BuildRequires: pkgconfig(capi-system-info) BuildRequires: pkgconfig(capi-appfw-application) BuildRequires: pkgconfig(gmock) +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig %if 0%{?gcov:1} BuildRequires: lcov +BuildRequires: tar %endif -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig %description Network Wi-Fi Manager library in Tizen C API %package devel -Summary: Network Wi-Fi Manager library in Tizen C API (Development) -Group: System/Network -Requires: %{name} = %{version}-%{release} +Summary: Network Wi-Fi Manager library in Tizen C API (Development) +Group: Network & Connectivity/Development +Requires: %{name} = %{version}-%{release} %description devel Network Wi-Fi Manager library in Tizen C API (Development) %package tool -Summary: Test Application for Wi-Fi Manager +Summary: Test Application for Wi-Fi Manager +Group: Network & Connectivity/Utilities +Requires: %{name} = %{version} %description tool Test Application for Wi-Fi Manager %if 0%{?gcov:1} %package gcov -Summary: Network Wi-Fi manager library(gcov) -Group: Network/Testing -BuildRequires: pkgconfig(gmock) -BuildRequires: lcov -BuildRequires: tar +Summary: Coverage Data of %{name} +Group: Network & Connectivity/Testing %description gcov -gcov objects for coverage test +The %{name}-gcov pacakge contains gcov objects %endif %prep @@ -63,14 +63,10 @@ export FFLAGS+=" -fprofile-arcs -ftest-coverage" export LDFLAGS+=" -lgcov" %endif -export CFLAGS+=' -Wno-unused-local-typedefs' -#export CFLAGS+=' -Wno-unused-local-typedefs -fprofile-arcs -ftest-coverage' MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'` -cmake -DCMAKE_INSTALL_PREFIX=/usr -DFULLVER=%{version} -DMAJORVER=${MAJORVER} \ - -DLIB_INSTALL_DIR=%{_libdir} -DINCLUDE_INSTALL_DIR=%{_includedir} \ - -DBIN_DIR=%{_bindir} -DLIB_PATH=%{_lib} \ - -DBUILD_GTESTS=%{?gcov:1}%{!?gcov:0} \ - . +%cmake . -DFULLVER=%{version} -DMAJORVER=${MAJORVER} \ + -DCMAKE_VERBOSE_MAKEFILE=OFF \ + -DBIN_INSTALL_DIR:PATH=%{_bindir} make %{?_smp_mflags} @@ -81,29 +77,24 @@ make %{?_smp_mflags} find .. -name '*.gcno' | tar cf %{name}-gcov.tar -T - install -d -m 755 %{buildroot}%{_datadir}/gcov/obj tar xf %{name}-gcov.tar -C %{buildroot}%{_datadir}/gcov/obj - -%check -tests/gtest-wifi-manager -lcov -c --ignore-errors graph --no-external -b . -d . -o %{name}.info -genhtml %{name}.info -o out --legend --show-details %endif %post -p /sbin/ldconfig %postun -p /sbin/ldconfig - %files -%manifest capi-network-wifi-manager.manifest -%attr(644,-,-) %{_libdir}/libcapi-network-wifi-manager.so.* +%manifest %{name}.manifest +%{_libdir}/lib%{name}.so.* %license LICENSE.APLv2 %files devel %{_includedir}/network/*.h -%{_libdir}/pkgconfig/*.pc -%{_libdir}/libcapi-network-wifi-manager.so +%{_libdir}/pkgconfig/%{name}.pc +%{_libdir}/lib%{name}.so %files tool +%manifest %{name}.manifest %{_bindir}/wifi_manager_test %{_bindir}/wifi_mgr_tool %{_bindir}/wifi_connect_tool @@ -111,5 +102,5 @@ genhtml %{name}.info -o out --legend --show-details %if 0%{?gcov:1} %files gcov -%{_datadir}/gcov/obj/* +%{_datadir}/gcov/* %endif diff --git a/tools/connection-tool/CMakeLists.txt b/tools/connection-tool/CMakeLists.txt index 413ff60..322be1e 100644 --- a/tools/connection-tool/CMakeLists.txt +++ b/tools/connection-tool/CMakeLists.txt @@ -4,6 +4,6 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src) FILE(GLOB CON_TOOL_SRCS *.c) ADD_EXECUTABLE(${WIFI_CON_TOOL} ${CON_TOOL_SRCS}) -TARGET_LINK_LIBRARIES(${WIFI_CON_TOOL} ${fw_name}) +TARGET_LINK_LIBRARIES(${WIFI_CON_TOOL} ${PROJECT_NAME}) SET_TARGET_PROPERTIES(${WIFI_CON_TOOL} PROPERTIES POSITION_INDEPENDENT_CODE ON) -INSTALL(TARGETS ${WIFI_CON_TOOL} DESTINATION ${BIN_DIR}) +INSTALL(TARGETS ${WIFI_CON_TOOL} DESTINATION ${BIN_INSTALL_DIR}) \ No newline at end of file diff --git a/tools/manager-tool/CMakeLists.txt b/tools/manager-tool/CMakeLists.txt index f489cab..6f6ff7e 100644 --- a/tools/manager-tool/CMakeLists.txt +++ b/tools/manager-tool/CMakeLists.txt @@ -4,15 +4,15 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src) FILE(GLOB MGR_TOOL_SRCS wifi_mgr*.c) ADD_EXECUTABLE(${WIFI_MGR_TOOL} ${MGR_TOOL_SRCS}) -TARGET_LINK_LIBRARIES(${WIFI_MGR_TOOL} ${fw_name}) +TARGET_LINK_LIBRARIES(${WIFI_MGR_TOOL} ${PROJECT_NAME}) +SET_TARGET_PROPERTIES(${WIFI_MGR_TOOL} PROPERTIES POSITION_INDEPENDENT_CODE ON) SET(wifi_manager_test_src wifi_manager_test.c ) ADD_EXECUTABLE(wifi_manager_test ${wifi_manager_test_src}) -TARGET_LINK_LIBRARIES(wifi_manager_test ${fw_name}) +TARGET_LINK_LIBRARIES(wifi_manager_test ${PROJECT_NAME}) -SET_TARGET_PROPERTIES(${WIFI_MGR_TOOL} PROPERTIES POSITION_INDEPENDENT_CODE ON) -INSTALL(TARGETS ${WIFI_MGR_TOOL} DESTINATION ${BIN_DIR}) -INSTALL(TARGETS wifi_manager_test DESTINATION ${BIN_DIR}) +INSTALL(TARGETS ${WIFI_MGR_TOOL} DESTINATION ${BIN_INSTALL_DIR}) +INSTALL(TARGETS wifi_manager_test DESTINATION ${BIN_INSTALL_DIR})