Skip to content

Commit

Permalink
[cmake] reuse cor macros. Contributes to MER#919
Browse files Browse the repository at this point in the history
Also enable packaging on other distros (e.g. OpenSUSE)

Signed-off-by: Denis Zalevskiy <denis.zalevskiy@jolla.com>
  • Loading branch information
Denis Zalevskiy committed Jul 20, 2015
1 parent 194e92a commit 40578c7
Show file tree
Hide file tree
Showing 7 changed files with 25 additions and 37 deletions.
19 changes: 3 additions & 16 deletions CMakeLists.txt
@@ -1,6 +1,7 @@
PROJECT(VAULT)
cmake_minimum_required(VERSION 2.8.8)

message(STATUS "Tools go to ${TOOLS_DIR}")
set(prefix ${CMAKE_INSTALL_PREFIX})

IF(NOT DEFINED VERSION OR VERSION STREQUAL "")
Expand All @@ -11,24 +12,12 @@ IF(NOT DEFINED LONG_VERSION OR LONG_VERSION STREQUAL "")
set(LONG_VERSION ${VERSION})
ENDIF(NOT DEFINED LONG_VERSION OR LONG_VERSION STREQUAL "")

option(ENABLE_MULTIARCH "Enable support for multi-arch distros (lib64)" OFF)
IF(ENABLE_MULTIARCH)
IF(CMAKE_SIZEOF_VOID_P EQUAL 4)
SET(LIB_SUFFIX "")
ELSE(CMAKE_SIZEOF_VOID_P EQUAL 4)
SET(LIB_SUFFIX 64)
ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 4)
ELSE()
SET(LIB_SUFFIX "")
ENDIF()
set(DST_LIB lib${LIB_SUFFIX})

message(STATUS "Version ${VERSION}")
message(STATUS "Long version is ${LONG_VERSION}")
message(STATUS "Multiarch is ${ENABLE_MULTIARCH}")

find_package(PkgConfig REQUIRED)
find_package(Qt5Core REQUIRED)
find_package(Cor REQUIRED)

set(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -fPIC -W -Wall -Wextra -Werror -g -O2 -std=c++0x")
Expand All @@ -49,7 +38,6 @@ include_directories(
)

pkg_check_modules(QTAROUND qtaround REQUIRED)
pkg_check_modules(COR cor REQUIRED)
include_directories(
${COR_INCLUDE_DIRS}
${QTAROUND_INCLUDE_DIRS}
Expand All @@ -65,8 +53,7 @@ add_subdirectory(tests)
add_subdirectory(qml/Vault)
add_subdirectory(tools)

configure_file(vault-unit.pc.in vault-unit.pc @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/vault-unit.pc DESTINATION ${DST_LIB}/pkgconfig)
configure_install_pkgconfig(vault-unit)

install(
DIRECTORY include/vault
Expand Down
4 changes: 2 additions & 2 deletions qml/Vault/CMakeLists.txt
Expand Up @@ -12,5 +12,5 @@ set_target_properties(vault-declarative PROPERTIES
SOVERSION 0
VERSION ${VERSION}
)
install(TARGETS vault-declarative DESTINATION lib/qt5/qml/NemoMobile/Vault)
install(FILES qmldir DESTINATION lib/qt5/qml/NemoMobile/Vault)
install(TARGETS vault-declarative DESTINATION ${DST_LIB}/qt5/qml/NemoMobile/Vault)
install(FILES qmldir DESTINATION ${DST_LIB}/qt5/qml/NemoMobile/Vault)
12 changes: 8 additions & 4 deletions rpm/vault.spec
@@ -1,4 +1,5 @@
%{!?_with_usersession: %{!?_without_usersession: %define _with_usersession --with-usersession}}
%{!?cmake_install: %global cmake_install make install DESTDIR=%{buildroot}}

Summary: Incremental backup/restore framework
Name: vault
Expand Down Expand Up @@ -42,13 +43,15 @@ Requires: %{name} = %{version}-%{release}
%prep
%setup -q

%define tools_dir %{_libexecdir}/vault

%build
%cmake -DVERSION=%{version} %{?_with_multiarch:-DENABLE_MULTIARCH=ON}
%cmake -DVERSION=%{version} %{?_with_multiarch:-DENABLE_MULTIARCH=ON} -DTOOLS_DIR=%{tools_dir}
make %{?jobs:-j%jobs}

%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=%{buildroot}
%cmake_install

%if 0%{?_with_usersession:1}
install -D -p -m644 tools/vault-gc.service %{buildroot}%{_userunitdir}/vault-gc.service
Expand All @@ -57,15 +60,15 @@ install -D -p -m644 tools/vault-gc.service %{buildroot}%{_userunitdir}/vault-gc.
%clean
rm -rf $RPM_BUILD_ROOT

%define tools_dir %{_libexecdir}/vault

%files
%defattr(-,root,root,-)
%{_libdir}/libvault-core.so*
%{_libdir}/libvault-transfer.so*
%{_libdir}/libvault-unit.so*
%dir %{_libdir}/qt5/qml/NemoMobile/Vault
%{_libdir}/qt5/qml/NemoMobile/Vault/*
%{_bindir}/vault
%dir %{tools_dir}
%{tools_dir}/*
%if 0%{?_with_usersession:1}
%{_userunitdir}/vault-gc.service
Expand All @@ -79,6 +82,7 @@ rm -rf $RPM_BUILD_ROOT

%files tests
%defattr(-,root,root,-)
%dir /opt/tests/vault
/opt/tests/vault/*

%post
Expand Down
2 changes: 1 addition & 1 deletion src/CMakeLists.txt
Expand Up @@ -9,7 +9,7 @@ link_directories(

set(CMAKE_AUTOMOC TRUE)

configure_file(config.hpp.in config.hpp @ONLY)
configure_file(config.hpp.in ${CMAKE_CURRENT_SOURCE_DIR}/config.hpp @ONLY)

add_library(vault-core SHARED vault.cpp vault_config.cpp)
qt5_use_modules(vault-core Core)
Expand Down
17 changes: 7 additions & 10 deletions tests/CMakeLists.txt
Expand Up @@ -4,13 +4,13 @@ include_directories(${TUT_INCLUDES})
find_package(Qt5Core REQUIRED)
set(CMAKE_AUTOMOC TRUE)

set(TESTS_DIR /opt/tests/vault)
testrunner_project(vault)
set(UNIT_TESTS unit vault transfer)

add_executable(unit_all unit_all.cpp)
target_link_libraries(unit_all vault-unit)
qt5_use_modules(unit_all Core)
install(TARGETS unit_all DESTINATION ${TESTS_DIR})
testrunner_install(TARGETS unit_all)

MACRO(UNIT_TEST _name)
set(_exe_name test_${_name})
Expand All @@ -21,7 +21,7 @@ MACRO(UNIT_TEST _name)
vault-core
)
qt5_use_modules(${_exe_name} Core)
install(TARGETS ${_exe_name} DESTINATION ${TESTS_DIR})
testrunner_install(TARGETS ${_exe_name})
ENDMACRO(UNIT_TEST)

foreach(t ${UNIT_TESTS})
Expand All @@ -33,19 +33,16 @@ target_link_libraries(test_transfer vault-transfer)
MACRO(UNIT_IMPL _name)
set(_exe_name ${_name}_vault_test)
set(UNIT_NAME ${_name})
configure_file(basic_unit.cpp.in ${_name}_unit.cpp @ONLY)
configure_file(basic_unit.cpp.in ${CMAKE_CURRENT_SOURCE_DIR}/${_name}_unit.cpp @ONLY)
add_executable(${_exe_name} ${_name}_unit.cpp)
target_link_libraries(${_exe_name} vault-unit)
qt5_use_modules(${_exe_name} Core)
install(TARGETS ${_exe_name} DESTINATION ${TESTS_DIR})
testrunner_install(TARGETS ${_exe_name})
ENDMACRO(UNIT_IMPL)

UNIT_IMPL(unit1)
UNIT_IMPL(unit2)
install(PROGRAMS unit_fail_vault_test DESTINATION ${TESTS_DIR})

configure_file(tests.xml.in tests.xml @ONLY)
install(FILES tests.xml DESTINATION ${TESTS_DIR})
install(PROGRAMS check_dirs_similar.sh DESTINATION ${TESTS_DIR})
testrunner_install(PROGRAMS unit_fail_vault_test)
testrunner_install(PROGRAMS check_dirs_similar.sh)

add_subdirectory(qml)
4 changes: 2 additions & 2 deletions tests/qml/CMakeLists.txt
Expand Up @@ -4,5 +4,5 @@ set_target_properties(test_vault_qml
"TEST_DIR=\"${TESTS_DIR}\"; IMPORT_DIR=\"${CMAKE_INSTALL_PREFIX}/lib/vault/qml\""
)
qt5_use_modules(test_vault_qml Core)
install(TARGETS test_vault_qml DESTINATION ${TESTS_DIR})
install(FILES tst_vault.qml DESTINATION ${TESTS_DIR})
testrunner_install(TARGETS test_vault_qml)
testrunner_install(FILES tst_vault.qml)
4 changes: 2 additions & 2 deletions tools/CMakeLists.txt
Expand Up @@ -2,10 +2,10 @@ configure_file(vault-gc.service.in vault-gc.service @ONLY)

install(
PROGRAMS git-vault-gc gc-default
DESTINATION libexec/vault
DESTINATION ${TOOLS_DIR}
)

install(
FILES git-vault-rebase-generate.awk git-vault-rebase-prepare.awk
DESTINATION libexec/vault
DESTINATION ${TOOLS_DIR}
)

0 comments on commit 40578c7

Please sign in to comment.