CMake conversion

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
(cherry picked from commit 2c316e3037)
r14.1.x
Michele Calgaro 3 weeks ago
parent ec41c8e01c
commit d8d55853dc
Signed by: MicheleC
GPG Key ID: 2A75B7CA8ADED5CF

@ -0,0 +1,91 @@
############################################
# #
# Improvements and feedbacks are welcome #
# #
# This file is released under GPL >= 3 #
# #
############################################
##### set project version ########################
include( TDEVersion )
cmake_minimum_required( VERSION ${TDE_CMAKE_MINIMUM_VERSION} )
tde_set_project_version( )
#### general package setup
project( krecipes )
#### include essential cmake modules
include( FindPkgConfig )
include( CheckSymbolExists )
include( CheckIncludeFile )
include( CheckLibraryExists )
include( CheckCSourceCompiles )
include( CheckCXXSourceCompiles )
#### include our 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_MYSQL "Build MySQL backend support" ${WITH_ALL_OPTIONS} )
option( WITH_POSTGRESQL "Build PostgreSQL backend support" ${WITH_ALL_OPTIONS} )
option( WITH_SQLITE3 "Build SQLite3 backend support" ${WITH_ALL_OPTIONS} )
option( WITH_GCC_VISIBILITY "Enable fvisibility and fvisibility-inlines-hidden" ${WITH_ALL_OPTIONS} )
##### user requested modules
option( BUILD_ALL "Build all" ON )
option( BUILD_DOC "Build documentation" ${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" )
##### directories
add_subdirectory( data )
add_subdirectory( icons )
add_subdirectory( layouts )
add_subdirectory( pics )
add_subdirectory( src )
##### other data ################################
tde_conditional_add_project_docs( BUILD_DOC )
tde_conditional_add_project_translations( BUILD_TRANSLATIONS )
##### write configure files
configure_file( config.h.cmake config.h @ONLY )

@ -0,0 +1,116 @@
###########################################
# #
# 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 )
##### Make sure at least a DB backend is selected
if ( NOT WITH_MYSQL AND NOT WITH_POSTGRESQL AND NOT WITH_SQLITE3 )
tde_message_fatal( "No DB backend selected. Building cannot continue" )
endif( )
#### check for MySQL or MariaDB
if( WITH_MYSQL )
message( STATUS "Check for MariaDB or MySQL" )
find_program( MYSQL_CONFIG NAMES mariadb_config mysql_config )
if( NOT MYSQL_CONFIG )
tde_message_fatal( "MySQL support was requested but neither MySQL nor MariaDB have been found on your system" )
endif()
macro( _mysql_config __type __var )
execute_process(
COMMAND ${MYSQL_CONFIG} --${__type}
OUTPUT_VARIABLE ${__var}
RESULT_VARIABLE __result
OUTPUT_STRIP_TRAILING_WHITESPACE )
if( _result )
tde_message_fatal( "Unable to run ${MYSQL_CONFIG}!" )
endif()
endmacro()
_mysql_config( include MYSQL_INCLUDE_DIRS )
_mysql_config( libs MYSQL_LIBRARIES )
if( MYSQL_INCLUDE_DIRS )
string( REGEX REPLACE "(^| +)-I" ";" MYSQL_INCLUDE_DIRS "${MYSQL_INCLUDE_DIRS}" )
endif()
if( MYSQL_LIBRARIES )
string( REGEX REPLACE "(^| +)-l" ";" MYSQL_LIBRARIES "${MYSQL_LIBRARIES}" )
endif( )
set( MYSQL_INCLUDE_DIRS "${MYSQL_INCLUDE_DIRS}" CACHE INTERNAL "" FORCE )
set( MYSQL_LIBRARIES "${MYSQL_LIBRARIES}" CACHE INTERNAL "" FORCE )
message( STATUS " includes ${MYSQL_INCLUDE_DIRS}")
message( STATUS " libraries ${MYSQL_LIBRARIES}")
set( HAVE_MYSQL 1 )
endif( WITH_MYSQL )
##### check for PostgreSQL
if( WITH_POSTGRESQL )
message( STATUS "Check for PostgreSQL" )
find_package( PostgreSQL )
if( PostgreSQL_INCLUDE_DIR AND PostgreSQL_LIBRARY )
message( STATUS " includes ${PostgreSQL_INCLUDE_DIR}")
message( STATUS " library ${PostgreSQL_LIBRARY}")
set( HAVE_POSTGRESQL 1 )
else()
pkg_search_module( LIBPQ libpq )
if( NOT LIBPQ_FOUND )
tde_message_fatal( "PostgreSQL support was requested but Postgresql was not found on your system." )
endif()
set( PostgreSQL_INCLUDE_DIR "${LIBPQ_INCLUDE_DIRS}" )
set( PostgreSQL_LIBRARY "${LIBPQ_LIBRARIES}" )
set( PostgreSQL_LIBRARY_DIRS "${LIBPQ_LIBRARY_DIRS}" )
set( HAVE_POSTGRESQL 1 )
endif()
endif( WITH_POSTGRESQL )
##### check for SQLite3
if( WITH_SQLITE3 )
pkg_search_module( SQLITE3 sqlite3 )
if( NOT SQLITE3_FOUND )
tde_message_fatal( "SQLite3 was requested but not found on your system" )
endif( )
message( STATUS "sqlite3 linking: ${SQLITE3_LIBRARIES}" )
set( HAVE_SQLITE3 1 )
endif( WITH_SQLITE3 )

@ -0,0 +1,17 @@
#define VERSION "@VERSION@"
// Defined if you have fvisibility and fvisibility-inlines-hidden support.
#cmakedefine __TDE_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 if MySQL or MariaDB was found
#cmakedefine HAVE_MYSQL 1
// Define if Postgresql was found
#cmakedefine HAVE_POSTGRESQL 1
// Define if SQLite3 was found
#cmakedefine HAVE_SQLITE3 1

@ -0,0 +1,9 @@
install(
FILES abbrev.txt data.sql samples-cs_CZ.kreml samples-en_US.kreml weight.txt
DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}/data
)
tde_create_translated_desktop(
SOURCE x-krecipes-backup.desktop x-krecipes-recipes.desktop
DESTINATION ${MIME_INSTALL_DIR}/application
)

@ -0,0 +1 @@
tde_auto_add_subdirectories()

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

@ -0,0 +1 @@
tde_install_icons( DESTINATION ${SHARE_INSTALL_PREFIX}/icons )

@ -0,0 +1,4 @@
install(
FILES Blue.klo Default.klo Default.template Two_Column.template
DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}/layouts
)

@ -0,0 +1,6 @@
file( GLOB _pics *.png )
install(
FILES ${_pics}
DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}/pics
)

@ -0,0 +1,61 @@
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_BINARY_DIR}
${TQT_INCLUDE_DIRS}
${TDE_INCLUDE_DIR}
)
link_directories(
${TQT_LIBRARY_DIRS}
${TDE_LIB_DIR}
)
##### subfolders
add_subdirectory( backends )
add_subdirectory( datablocks )
add_subdirectory( dialogs )
add_subdirectory( exporters )
add_subdirectory( importers )
add_subdirectory( widgets )
##### krecipes (executable)
tde_add_executable( krecipes AUTOMOC
SOURCES
main.cpp krecipes.cpp krecipesview.cpp pref.cpp
krecipesiface.skel krecipesdbiface.skel
propertycalculator.cpp setupwizard.cpp
shoppingcalculator.cpp kstartuplogo.cpp
recipeactionshandler.cpp recipefilter.cpp
convert_sqlite3.cpp klomanager.cpp
LINK
krecipesdbs-static krecipesexporters-static krecipesimporters-static
krecipesdialogs-static krecipeswidgets-static datablocks-static
tdecore-shared tdeui-shared tdeio-shared tdeparts-shared
tdefx-shared tdehtml-shared DCOP-shared
DESTINATION ${BIN_INSTALL_DIR}
)
##### other files
install(
FILES krecipes.xpm
DESTINATION ${SHARE_INSTALL_PREFIX}/pixmaps
)
install(
FILES krecipesui.rc
DESTINATION ${DATA_INSTALL_DIR}/krecipes
)
tde_create_translated_desktop(
SOURCE krecipes.desktop
DESTINATION ${XDG_APPS_INSTALL_DIR}
)
tde_install_icons( DESTINATION ${SHARE_INSTALL_PREFIX}/icons )

@ -0,0 +1,31 @@
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
##### subfolders
tde_conditional_add_subdirectory( WITH_MYSQL MySQL )
tde_conditional_add_subdirectory( WITH_POSTGRESQL PostgreSQL )
tde_conditional_add_subdirectory( WITH_SQLITE3 SQLite )
##### krecipesdbs (static)
# backend libraries list
set( BACKEND_LIBRARIES "" )
if( WITH_MYSQL )
list( APPEND BACKEND_LIBRARIES "krecmysql-static" )
endif( )
if( WITH_POSTGRESQL )
list( APPEND BACKEND_LIBRARIES "krecpsql-static" )
endif( )
if( WITH_SQLITE3 )
list( APPEND BACKEND_LIBRARIES "krecsqlite-static" )
endif( )
tde_add_library( krecipesdbs STATIC_PIC AUTOMOC
SOURCES recipedb.cpp qsqlrecipedb.cpp progressinterface.cpp
LINK ${BACKEND_LIBRARIES}
)

@ -0,0 +1,12 @@
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
##### krecmysql (static)
tde_add_library( krecmysql STATIC_PIC AUTOMOC
SOURCES mysqlrecipedb.cpp
LINK krecipesdbs-static ${MYSQL_LIBRARIES}
)

@ -0,0 +1,16 @@
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
link_directories(
${LIBPQ_LIBRARY_DIRS}
)
##### krecpsql (static)
tde_add_library( krecpsql STATIC_PIC AUTOMOC
SOURCES psqlrecipedb.cpp
LINK krecipesdbs-static ${LIBPQ_LIBRARIES}
)

@ -0,0 +1,13 @@
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
##### krecsqlite (static)
tde_add_library( krecsqlite STATIC_PIC AUTOMOC
SOURCES literecipedb.cpp
LINK krecipesdbs-static ${SQLITE3_LIBRARIES}
)

@ -0,0 +1,16 @@
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
##### datablocks (static)
tde_add_library( datablocks STATIC_PIC AUTOMOC
SOURCES
recipelist.cpp constraintlist.cpp categorytree.cpp kreborder.cpp
recipe.cpp ingredient.cpp ingredientlist.cpp elementlist.cpp
element.cpp ingredientproperty.cpp ingredientpropertylist.cpp
unit.cpp unitratio.cpp unitratiolist.cpp mixednumber.cpp rating.cpp
weight.cpp
)

@ -0,0 +1,38 @@
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
##### krecipesdialogs (static)
tde_add_library( krecipesdialogs STATIC_PIC AUTOMOC
SOURCES
advancedsearchdialog.cpp recipeimportdialog.cpp
dietwizarddialog.cpp recipeinputdialog.cpp
recipeviewdialog.cpp selectrecipedialog.cpp
ingredientsdialog.cpp selectunitdialog.cpp
createelementdialog.cpp propertiesdialog.cpp
createpropertydialog.cpp selectpropertydialog.cpp
unitsdialog.cpp dependanciesdialog.cpp
shoppinglistdialog.cpp shoppinglistviewdialog.cpp
selectcategoriesdialog.cpp categorieseditordialog.cpp
authorsdialog.cpp selectauthorsdialog.cpp
resizerecipedialog.cpp
dietviewdialog.cpp ingredientmatcherdialog.cpp
usdadatadialog.cpp prepmethodsdialog.cpp
createcategorydialog.cpp borderdialog.cpp
refineshoppinglistdialog.cpp pagesetupdialog.cpp
dbimportdialog.cpp createunitdialog.cpp
setupdisplay.cpp
ingredientparserdialog.cpp ingredientgroupsdialog.cpp
editratingdialog.cpp similarcategoriesdialog.cpp
conversiondialog.cpp createingredientweightdialog.cpp
recipeprintpreview.cpp
)
set_property(
SOURCE recipeinputdialog.cpp
APPEND PROPERTY OBJECT_DEPENDS
${CMAKE_BINARY_DIR}/src/widgets/ratingdisplaywidget.h
)

@ -0,0 +1,14 @@
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
##### krecipesexporters (static)
tde_add_library( krecipesexporters STATIC_PIC AUTOMOC
SOURCES
kreexporter.cpp baseexporter.cpp cookmlexporter.cpp
recipemlexporter.cpp mmfexporter.cpp htmlexporter.cpp plaintextexporter.cpp
rezkonvexporter.cpp htmlbookexporter.cpp
)

@ -0,0 +1,13 @@
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
##### krecipesimporters (static)
tde_add_library( krecipesimporters STATIC_PIC AUTOMOC
SOURCES
mx2importer.cpp mmfimporter.cpp mxpimporter.cpp nycgenericimporter.cpp recipemlimporter.cpp
baseimporter.cpp kreimporter.cpp rezkonvimporter.cpp kredbimporter.cpp
)

@ -0,0 +1,22 @@
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
##### krecipeswidgets (static)
tde_add_library( krecipeswidgets STATIC_PIC AUTOMOC
SOURCES
krelistview.cpp kremenu.cpp
paneldeco.cpp ingredientlistview.cpp unitlistview.cpp
propertylistview.cpp prepmethodlistview.cpp categorylistview.cpp
authorlistview.cpp recipelistview.cpp categorycombobox.cpp
kretextedit.cpp dblistviewbase.cpp
conversiontable.cpp fractioninput.cpp ingredientcombobox.cpp
headercombobox.cpp prepmethodcombobox.cpp
inglistviewitem.cpp kdateedit.cpp kdatepickerpopup.cpp
headerlistview.cpp ratingwidget.cpp kwidgetlistbox.cpp
ratingdisplaywidget.ui criteriacombobox.cpp ingredientinputwidget.cpp
unitcombobox.cpp amountunitinput.cpp weightinput.cpp
)
Loading…
Cancel
Save