Conversion to the cmake building system.

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
pull/2/head
Slávek Banko 5 years ago
parent bf76e158be
commit c1af0d2417
No known key found for this signature in database
GPG Key ID: 608F5293A04BE668

@ -0,0 +1,121 @@
############################################
# #
# Improvements and feedbacks are welcome #
# #
# This file is released under GPL >= 3 #
# #
############################################
cmake_minimum_required( VERSION 2.8 )
#### general package setup
project( smartcardauth )
set( VERSION R14.0.7 )
#### include essential cmake modules
include( FindPkgConfig )
include( CheckFunctionExists )
include( CheckSymbolExists )
include( CheckIncludeFile )
include( CheckLibraryExists )
include( CheckCSourceCompiles )
#### include our cmake modules
set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" )
include( TDEMacros )
##### setup install paths
include( TDESetupPaths )
tde_setup_paths( )
##### optional stuff
option( WITH_ALL_OPTIONS "Enable all optional support" OFF )
option( WITH_GCC_VISIBILITY "Enable fvisibility and fvisibility-inlines-hidden" ${WITH_ALL_OPTIONS} )
##### configure checks
include( ConfigureChecks.cmake )
###### global compiler settings
add_definitions( -DHAVE_CONFIG_H -UQT_NO_ASCII_CAST )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TQT_CXX_FLAGS}" )
set( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined" )
set( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined" )
##### directories
add_subdirectory( src )
##### write configure files
configure_file( config.h.cmake config.h @ONLY )
##### scriptor_standalone (executable)
file( READ scriptor_standalone.pl SCRIPTOR )
string( REPLACE "scriptor" "scriptor_standalone" SCRIPTOR_STANDALONE "${SCRIPTOR}" )
file( WRITE ${CMAKE_CURRENT_BINARY_DIR}/scriptor_standalone.pl "${SCRIPTOR_STANDALONE}" )
add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/scriptor_standalone
COMMAND ${PERL_PAR_PACKER}
-a ${PERL_LIB_CHIPCARD}
-o ${CMAKE_CURRENT_BINARY_DIR}/scriptor_standalone
${CMAKE_CURRENT_BINARY_DIR}/scriptor_standalone.pl
COMMENT "Build scriptor_standalone"
)
add_custom_target( scriptor_standalone-binary ALL
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/scriptor_standalone
)
install(
PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/scriptor_standalone
DESTINATION ${BIN_INSTALL_DIR}
)
##### other data
install(
DIRECTORY etc/
DESTINATION ${SYSCONF_INSTALL_DIR}
)
file( GLOB SCRIPTS usr/bin/* )
install(
PROGRAMS ${SCRIPTS}
DESTINATION ${BIN_INSTALL_DIR}
)
file( GLOB INITRAMFS_HOOKS usr/share/initramfs-tools/hooks/* )
install(
PROGRAMS ${INITRAMFS_HOOKS}
DESTINATION ${SHARE_INSTALL_PREFIX}/initramfs-tools/hooks
)
install(
DIRECTORY
usr/share/applications
usr/share/icons
DESTINATION ${SHARE_INSTALL_PREFIX}
)

@ -0,0 +1,113 @@
###########################################
# #
# Improvements and feedback are welcome #
# #
# This file is released under GPL >= 3 #
# #
###########################################
# required stuff
find_package( TQt )
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 )
##### check for TDE binary directory
if( NOT DEFINED TDE_PREFIX AND IS_DIRECTORY /opt/trinity )
set( TDE_PREFIX "/opt/trinity" )
else( )
set( TDE_PREFIX "/usr" )
endif( )
if( NOT DEFINED KDECONFIG_EXECUTABLE )
find_program( KDECONFIG_EXECUTABLE
NAMES tde-config
HINTS "${TDE_PREFIX}/bin" ${BIN_INSTALL_DIR} )
if( NOT KDECONFIG_EXECUTABLE )
tde_message_fatal( "tde-config are NOT found." )
endif( NOT KDECONFIG_EXECUTABLE )
endif( NOT DEFINED KDECONFIG_EXECUTABLE )
if( NOT DEFINED TRINITY_BIN_PREFIX )
execute_process(
COMMAND ${KDECONFIG_EXECUTABLE} --install exe
OUTPUT_VARIABLE TDE_BIN_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE
)
set( TRINITY_BIN_PREFIX "${TDE_BIN_DIR}" CACHE PATH "" )
message( STATUS "Found TDE binaries: ${TRINITY_BIN_PREFIX}" )
endif( )
##### check for Perl
find_package( PerlLibs )
if( NOT PERLLIBS_FOUND )
tde_message_fatal( "Perl is required but not found on your system." )
endif( )
if( NOT DEFINED PERL_PAR_PACKER )
find_program( PERL_PAR_PACKER pp )
if( NOT PERL_PAR_PACKER )
tde_message_fatal( "Perl PAR packer (pp binary) is required but not found on your system." )
else( )
message( STATUS "Found Perl PAR packer: ${PERL_PAR_PACKER}" )
endif( )
endif( )
if( NOT DEFINED PERL_LIB_CHIPCARD )
find_path( PERL_DIR_CHIPCARD Chipcard
HINTS
${PERL_SITELIB}
${PERL_VENDORARCH}
${PERL_VENDORLIB}
${PERL_ARCHLIB}
${PERL_PRIVLIB}
)
if( NOT PERL_DIR_CHIPCARD )
tde_message_fatal( "libpcsc for perl is required but not found on your system." )
endif( )
set( PERL_LIB_CHIPCARD "${PERL_DIR_CHIPCARD}/Chipcard" CACHE PATH "" )
message( STATUS "Found PCSC-perl: ${PERL_LIB_CHIPCARD}" )
endif( )
##### check for crypt
set( CRYPT_LIBRARY crypt )
check_library_exists( ${CRYPT_LIBRARY} crypt "" HAVE_CRYPT )
if( NOT HAVE_CRYPT )
unset( CRYPT_LIBRARY )
check_function_exists( crypt LIBC_HAVE_CRYPT )
if( LIBC_HAVE_CRYPT )
set( HAVE_CRYPT 1 CACHE INTERNAL "" FORCE )
endif( LIBC_HAVE_CRYPT )
endif( NOT HAVE_CRYPT )
##### check for pam
if( NOT DEFINED PAM_FOUND )
find_path( PAM_INCLUDE_DIR NAMES security/pam_appl.h )
find_library( PAM_LIBRARY pam )
if( PAM_INCLUDE_DIR AND PAM_LIBRARY )
set( PAM_FOUND 1 CACHE BOOL "" )
set( PAM_LIBRARIES ${PAM_LIBRARY} ${CMAKE_DL_LIBS} CACHE INTERNAL "" )
message( STATUS "Found pam: ${PAM_LIBRARY}" )
else( )
tde_message_fatal( "pam is required but not found on your system." )
endif( )
endif( )

@ -0,0 +1,11 @@
#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@
/* Define path to Trinity binaries */
#cmakedefine TRINITY_BIN_PREFIX "@TRINITY_BIN_PREFIX@/"

@ -0,0 +1,43 @@
include_directories(
${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
link_directories(
${TQT_LIBRARY_DIRS}
)
##### smartauthckpasswd (executable)
tde_add_executable( smartauthckpasswd
SOURCES
ckpasswd.c
xmalloc.c
messages.c
LINK
${CRYPT_LIBRARY}
${PAM_LIBRARIES}
DESTINATION ${BIN_INSTALL_DIR}
)
##### smartauthmon (executable)
tde_add_executable( smartauthmon
SOURCES
smartauthmon.cpp
ckpass.c
xmalloc.c
messages.c
LINK
${CRYPT_LIBRARY}
${PAM_LIBRARIES}
${TQT_LIBRARIES}
DESTINATION ${BIN_INSTALL_DIR}
)

@ -14,6 +14,10 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#define _XOPEN_SOURCE 500
#include <stdio.h>
#include <stdlib.h>
@ -42,7 +46,9 @@
#define SECURE_DIRECTORY_PATH "/tmp/smartauth"
// The Trinity binary directory
#ifndef TRINTIY_BIN_PREFIX
#define TRINITY_BIN_PREFIX "/opt/trinity/bin/"
#endif
// Some internal constants
#define CREATE_LIFE_CYCLE "01"

Loading…
Cancel
Save