From 2d8f9f71ba8a1dc140d97b43c66f21a78794f53b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Thu, 26 Aug 2021 02:54:46 +0200 Subject: [PATCH] Remodel CMake rules according to TDE standards. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Slávek Banko --- CMakeLists.txt | 77 ++++++++++++++++++++++++++++++++++++------- ConfigureChecks.cmake | 25 ++++++++++++++ INSTALL | 38 +++++++++------------ README | 26 +++++++++++++++ TODO | 2 -- config.h.cmake | 8 +++++ src/CMakeLists.txt | 39 ++++++++++++++++++---- 7 files changed, 174 insertions(+), 41 deletions(-) create mode 100644 ConfigureChecks.cmake create mode 100644 README delete mode 100644 TODO create mode 100644 config.h.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 481ab0a..be733cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,17 +1,72 @@ -project(ksshaskpass) # the name of your project +############################################ +# # +# Improvements and feedbacks are welcome # +# # +# This file is released under GPL >= 3 # +# # +############################################ -cmake_minimum_required(VERSION 2.4.0) +cmake_minimum_required( VERSION 2.8.12 ) -find_package(TQt REQUIRED) # find and setup TQt for this project -find_package(KDE3 REQUIRED) # find and setup KDE3 for this project -add_definitions(${QT_DEFINITIONS} ${KDE3_DEFINITIONS}) +##### general package setup ##################### -# tell cmake where to search for libraries: -link_directories(${KDE3_LIB_DIR}) +project( ksshaskpass ) +set( VERSION 3.5.13.3 ) -# tell cmake where to search for Qt/KDE headers: -include_directories(${KDE3_INCLUDE_DIR} ${QT_INCLUDE_DIR}) -# tell cmake to process CMakeLists.txt in that subdirectory -add_subdirectory(src) +##### include essential cmake modules ########### + +include( CheckCXXSourceCompiles ) +include( CheckFunctionExists ) +include( CheckIncludeFileCXX ) +include( CheckLibraryExists ) +include( CheckStructHasMember ) +include( CheckSymbolExists ) +include( CheckTypeSize ) +include( FindPkgConfig ) + + +##### include our cmake modules ################# + +set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" ) +include( TDEMacros ) + + +##### setup install paths ####################### + +include( TDESetupPaths ) +tde_setup_paths( ) + + +##### user requested modules #################### + +option( BUILD_ALL "Build all" OFF ) +option( BUILD_DOC "Build doc" ${BUILD_ALL} ) +option( BUILD_TRANSLATIONS "Build translations" ${BUILD_ALL} ) + + +##### configure checks ########################## + +include( ConfigureChecks.cmake ) + + +###### global compiler settings ################# + +add_definitions( -DHAVE_CONFIG_H ) + +set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TQT_CXX_FLAGS}" ) +set( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined" ) +set( CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined" ) + + +##### source directories ######################## + +add_subdirectory( src ) +#tde_conditional_add_project_doc( BUILD_DOC ) +#tde_conditional_add_project_translations( BUILD_TRANSLATIONS ) + + +##### write configure files ##################### + +configure_file( config.h.cmake config.h @ONLY ) diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake new file mode 100644 index 0000000..d1e3778 --- /dev/null +++ b/ConfigureChecks.cmake @@ -0,0 +1,25 @@ +########################################### +# # +# Improvements and feedback are welcome # +# # +# This file is released under GPL >= 3 # +# # +########################################### + +# required stuff +find_package( TQt ) +find_package( TDE ) + +tde_setup_architecture_flags( ) + +include(TestBigEndian) +test_big_endian(WORDS_BIGENDIAN) + +tde_setup_largefiles( ) + + +##### check for gcc visibility support + +if( WITH_GCC_VISIBILITY ) + tde_setup_gcc_visibility( ) +endif( WITH_GCC_VISIBILITY ) diff --git a/INSTALL b/INSTALL index 05cd882..5c61726 100644 --- a/INSTALL +++ b/INSTALL @@ -1,22 +1,16 @@ -Ksshaskpass's build system uses CMake. -So to compile Ksshaskpass first create a build dir (cmake does not support -building in the source dir): - - mkdir build - cd build - -then run cmake: - - cmake .. - -(a typical cmake option that is often used is: -DCMAKE_INSTALL_PREFIX=) - -Finally build Ksshaskpass: - - make - -And install it (in most cases root privileges are required): - - make install - -(Text more or less copied from the Soprano build instructions.) +Basic Installation +================== + +ksshaskpass relies on cmake to build. + +Here are suggested default options: + + -DCMAKE_INSTALL_PREFIX="/opt/trinity" \ + -DCONFIG_INSTALL_DIR="/etc/trinity" \ + -DSYSCONF_INSTALL_DIR="/etc/trinity" \ + -DXDG_MENU_INSTALL_DIR="/etc/xdg/menus" \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_VERBOSE_MAKEFILE="ON" \ + -DCMAKE_SKIP_RPATH="OFF" \ + -DBUILD_ALL="ON" \ + -DWITH_ALL_OPTIONS="ON" diff --git a/README b/README new file mode 100644 index 0000000..6f820b5 --- /dev/null +++ b/README @@ -0,0 +1,26 @@ + + Ksshaskpass - a TDE version of ssh-askpass with KWallet support + + +Ksshaskpass is a TDE version of ssh-askpass. The usual TDE dialog box is +used to enter a password. It includes integrated support for TDEWallet. + + +Features: +========= + +* Simple application +* TDEWallet support + + + +CONTRIBUTING +============== + +If you wish to contribute to ksshaskpass, you might do so: + +- TDE Gitea Workspace (TGW) collaboration tool. + https://mirror.git.trinitydesktop.org/gitea + +- TDE Weblate Translation Workspace (TWTW) collaboration tool. + https://mirror.git.trinitydesktop.org/weblate diff --git a/TODO b/TODO deleted file mode 100644 index cfe328d..0000000 --- a/TODO +++ /dev/null @@ -1,2 +0,0 @@ - * Write a README file. - * Finish the KDE 4 port. diff --git a/config.h.cmake b/config.h.cmake new file mode 100644 index 0000000..61ede3a --- /dev/null +++ b/config.h.cmake @@ -0,0 +1,8 @@ +#define VERSION "@VERSION@" + +// Defined if you have fvisibility and fvisibility-inlines-hidden support. +#cmakedefine __KDE_HAVE_GCC_VISIBILITY 1 + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#cmakedefine WORDS_BIGENDIAN @WORDS_BIGENDIAN@ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 56dfdc7..344912f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,10 +1,37 @@ -set(ksshaskpass_SRCS - ksshaskpass.cpp +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} + ${TDE_LIB_DIR} +) + + +##### kdbg (executable) + +tde_add_executable( ${PROJECT_NAME} AUTOMOC + + SOURCES + ksshaskpass.cpp + LINK + kdeui-shared + kio-shared + + DESTINATION ${BIN_INSTALL_DIR} ) -add_executable(ksshaskpass ${ksshaskpass_SRCS}) -target_link_libraries(ksshaskpass ${QT_LIBRARIES} kdeui kwalletclient) +##### other data -install(TARGETS ksshaskpass DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) -install(FILES ksshaskpass.1 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1) +if( BUILD_DOC ) + install( + FILES ${PROJECT_NAME}.1 + DESTINATION ${MAN_INSTALL_DIR}/man1 + COMPONENT doc + ) +endif( )