CMake conversion

Signed-off-by: Mavridis Philippe <mavridisf@gmail.com>
pull/24/head
Mavridis Philippe 4 years ago
parent c06676f232
commit 3988d0b5dd
No known key found for this signature in database
GPG Key ID: F8D2D7E2F989A494

@ -0,0 +1,85 @@
#################################################
#
# (C) 2010-2011 Serghei Amelian
# serghei (DOT) amelian (AT) gmail.com
#
# Improvements and feedback are welcome
#
# This file is released under GPL >= 2
#
# Modified by Mavridis Philippe for KlamAV.
#
#################################################
cmake_minimum_required( VERSION 2.8.12 )
##### general package setup #####################
project( klamav )
set( VERSION R14.0.10 )
##### include essential cmake modules ###########
include( FindPkgConfig )
include( CheckFunctionExists )
include( CheckSymbolExists )
include( CheckIncludeFile )
include( CheckLibraryExists )
include( CheckCSourceCompiles )
include( CheckCXXSourceCompiles )
##### 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} )
option( WITH_EMBEDDED_SQLITE "Use included SQLite instead of system one" ${WITH_ALL_OPTIONS} )
##### user requested modules ####################
option( BUILD_ALL "Build all" ON )
option( BUILD_DOC "Build documentation" ${BUILD_ALL} )
option( BUILD_KLAMMAIL "Build Klammail (e-mail filter)" ${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 "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined" )
set( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined" )
##### source directories ########################
add_subdirectory( src )
tde_conditional_add_subdirectory( BUILD_DOC doc )
tde_conditional_add_subdirectory( BUILD_TRANSLATIONS translations )
##### write configure files #####################
configure_file( config.h.cmake config.h @ONLY )

@ -0,0 +1,67 @@
#################################################
#
# (C) 2010 Serghei Amelian
# serghei (DOT) amelian (AT) gmail.com
#
# Improvements and feedback are welcome
#
# This file is released under GPL >= 2
#
# Modified by Mavridis Philippe for KlamAV.
#
#################################################
# 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 )
find_package( X11 )
##### check for LibClamAV
pkg_search_module( LIBCLAMAV libclamav )
if( NOT LIBCLAMAV_FOUND )
tde_message_fatal( "ClamAV is required but not found on your system" )
endif( NOT LIBCLAMAV_FOUND )
##### check for zlib (needed by Virus Browser)
pkg_search_module( ZLIB zlib )
if( NOT ZLIB_FOUND )
tde_message_fatal( "zlib is required but not found on your system" )
endif( NOT ZLIB_FOUND )
##### check whether to use embedded or system SQLite
if( WITH_EMBEDDED_SQLITE )
set( SQLITE_LIBRARIES sqlite-static )
message( STATUS "sqlite3 linking: ${SQLITE_LIBRARIES}" )
else()
pkg_search_module( SQLITE sqlite3 )
if( SQLITE_FOUND )
message( STATUS "sqlite3 linking: ${SQLITE_LIBRARIES}" )
else()
tde_message_fatal( "sqlite3 is required, but not found on your system" )
endif( SQLITE_FOUND )
endif( WITH_EMBEDDED_SQLITE )

@ -0,0 +1,12 @@
#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@
/* Defined if you don't have either the XTest headers or
the xcb-util-keysyms headers */
#cmakedefine NO_XTEST_EXTENSION 1

@ -0,0 +1,34 @@
file( GLOB _dirs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} * )
list( REMOVE_ITEM _dirs html man )
string( REGEX REPLACE "[ \r\n\t]+" ";" _linguas "$ENV{LINGUAS}" )
foreach( _dir IN LISTS _dirs )
if( IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_dir}
AND ( "${_dir}" STREQUAL "en" OR
"${_linguas}" MATCHES "^;*$" OR
";${_linguas};" MATCHES ";${_dir};" ))
file( GLOB _doc_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${_dir} ${_dir}/*.docbook )
if( _doc_files )
list( FIND _doc_files "index.docbook" _find_index )
if( -1 EQUAL _find_index )
set( _noindex "NOINDEX" )
else()
unset( _noindex )
endif()
tde_create_handbook(
SOURCE_BASEDIR ${_dir}
${_noindex}
LANG ${_dir}
DESTINATION ${PROJECT_NAME}
)
endif()
endif()
endforeach()
if( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/html/CMakeLists.txt )
add_subdirectory( html )
endif()
if( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/man/CMakeLists.txt )
add_subdirectory( man )
endif()

@ -0,0 +1,75 @@
add_subdirectory( about )
add_subdirectory( action )
add_subdirectory( icons )
tde_conditional_add_subdirectory( WITH_EMBEDDED_SQLITE sqlite )
tde_conditional_add_subdirectory( BUILD_KLAMMAIL klammail )
include_directories(
${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${TDE_INCLUDE_DIR}
${TQT_INCLUDE_DIRS}
${LIBCLAMAV_INCLUDE_DIR}
${ZLIB_INCLUDE_DIR}
${CMAKE_SOURCE_DIR}/src/sqlite
${SQLITE_INCLUDE_DIR}
)
link_directories(
${TQT_LIBRARY_DIRS}
${TDE_LIB_DIR}
)
##### klamav (executable)
# @SOURCES: autoscanoptions.ui excluded until autoscan reimplemented
tde_add_executable( ${PROJECT_NAME} AUTOMOC
SOURCES
main.cpp klamav.cpp freshklam.cpp sigtool.cpp
klamscan.cpp kuarantine.cpp welcome.cpp dbviewer.cpp
frame.cpp tabwidget.cpp viewer.cpp pageviewer.cpp
klamav_run.cpp dcopklamscan.skel directorylist.cpp
scanviewer.cpp schedule.cpp datepicker.cpp
cthost.cpp ctcron.cpp ctmonth.cpp ctdom.cpp
ctdow.cpp cttask.cpp ctvariable.cpp
ktlistitem.cpp ktlisttask.cpp ktlisttasks.cpp
ktview.cpp ktlistcron.cpp kticon.cpp
activityviewer.cpp collectiondb.cpp
configdialog.cpp klamavconfig.kcfgc
archivelimits.ui archivetypes.ui specialfiletypes.ui
firstrunwizard.ui logoptions.ui
k3bjobprogressosd_mod.cpp
LINK
tdeio-shared
tdehtml-shared
tdeui-shared
tdecore-shared
${LIBCLAMAV_LIBRARIES}
${SQLITE_LIBRARIES}
${ZLIB_LIBRARIES}
DESTINATION ${BIN_INSTALL_DIR}
)
tde_create_translated_desktop( ${PROJECT_NAME}.desktop )
tde_create_translated_desktop(
SOURCE eventsrc
DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}
)
##### install servicemenu
install(
FILES klamav-dropdown.desktop
DESTINATION ${DATA_INSTALL_DIR}/konqueror/servicemenus
)
##### install XML-GUI resource file
install(
FILES klamavui.rc
DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}
)

@ -0,0 +1,4 @@
install(
FILES aboutklamav.html main.html nodb.html wait.html klamav.css top-right-klamav.png klam.png
DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}/about
)

@ -0,0 +1,4 @@
install(
FILES ScanWithKlamAV
DESTINATION ${BIN_INSTALL_DIR}
)

@ -0,0 +1,2 @@
tde_install_icons( DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}/icons )
tde_install_icons( app-klamav )

@ -0,0 +1,20 @@
include_directories(
${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/src
${LIBCLAMAV_INCLUDE_DIR}
)
##### klammail (executable)
tde_add_executable( klammail AUTOMOC
SOURCES
clamdmail.c options.c output.c memory.c cfgparser.c client.c
LINK
${LIBCLAMAV_LIBRARIES}
DESTINATION ${BIN_INSTALL_DIR}
)

@ -0,0 +1,54 @@
include_directories(
${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/src
${ZLIB_INCLUDE_DIR}
)
##### SQLite (static)
tde_add_library( sqlite STATIC_PIC
SOURCES
alter.c
attach.c
auth.c
btree.c
build.c
callback.c
date.c
delete.c
expr.c
func.c
hash.c
insert.c
legacy.c
main.c
opcodes.c
os_unix.c
os_win.c
pager.c
parse.c
pragma.c
prepare.c
printf.c
random.c
select.c
table.c
tokenize.c
trigger.c
update.c
utf.c
util.c
vacuum.c
vdbe.c
vdbeapi.c
vdbeaux.c
vdbemem.c
where.c
LINK
${ZLIB_LIBRARIES}
)
Loading…
Cancel
Save