Add ability to build GnuCash with CMake

Backported from master.
This commit is contained in:
Rob Gowin 2015-12-07 11:17:08 -06:00 committed by John Ralls
parent e5a4a5c432
commit 1d474968ca
77 changed files with 5051 additions and 422 deletions

View File

@ -3,48 +3,156 @@
# This is very EXPERIMENTAL! We will see how far this project will
# get.
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
PROJECT (cutecash)
IF (WIN32)
CMAKE_MINIMUM_REQUIRED (VERSION 3.3.2)
ELSE()
CMAKE_MINIMUM_REQUIRED (VERSION 3.1)
ENDIF()
# Version number of cutecash
SET (CUTECASH_VERSION_MAJOR "0")
SET (CUTECASH_VERSION_MINOR "1")
SET (CUTECASH_VERSION_PATCH "0")
PROJECT (Gnucash)
# Version number of gnucash
SET (GNUCASH_MAJOR_VERSION 2)
SET (GNUCASH_MINOR_VERSION 6)
SET (GNUCASH_MICRO_VERSION 99)
SET (GNUCASH_NANO_VERSION 0)
SET (VERSION "${GNUCASH_MAJOR_VERSION}.${GNUCASH_MINOR_VERSION}.${GNUCASH_MICRO_VERSION}")
SET (GNUCASH_LATEST_STABLE_SERIES 2.6)
SET (PACKAGE gnucash)
SET (PACKAGE_NAME GnuCash)
SET (PACKAGE_VERSION 2.6.99)
SET (PACKAGE_BUGREPORT gnucash-devel@gnucash.org)
SET (PACKAGE_TARNAME ${PACKAGE})
SET (PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
SET (PACKAGE_URL "")
# Change this in development versions when changing anything that
# affects stored data structures. Reset to zero when bumping version.
SET (CUTECASH_VERSION_NANO "0")
SET (GNUCASH_RESAVE_VERSION "19920")
SET(GETTEXT_PACKAGE "gnucash")
# Extra cmake macros
SET (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/src/cmake_modules;${CMAKE_MODULE_PATH}")
INCLUDE (MacroAppendForeach)
INCLUDE (MacroAddSourceFileCompileFlags)
INCLUDE (GncAddSwigCommand)
INCLUDE (CheckIncludeFiles)
INCLUDE (GncAddSchemeTargets)
INCLUDE (GncConfigure)
INCLUDE (GncAddGSchemaTargets)
# ############################################################
# These options are settable from the CMake command line. For example, to disable
# SQL, put -D WITH_SQL=OFF on the command line.
OPTION (WITH_SQL "Build this project with SQL (libdbi) support" OFF)
OPTION (WITH_AQBANKING "Build this project with aqbanking (online banking) support" OFF)
OPTION (WITH_SQL "Build this project with SQL (libdbi) support" ON)
OPTION (WITH_AQBANKING "Build this project with aqbanking (online banking) support" ON )
OPTION (WITH_GNUCASH "Build all of GnuCash, not just cutecash" ON)
OPTION (WITH_CUTECASH "Also build cutecash" OFF)
OPTION (WITH_OFX "compile with ofx support (needs LibOFX)" ON)
OPTION (ENABLE_BINRELOC "compile with binary relocation support" ON)
OPTION (ENABLE_DEBUG "compile with debugging flags set" OFF)
OPTION (ENABLE_REGISTER2 "compile with register2 enabled" OFF)
OPTION (DISABLE_NLS "do not use Native Language Support" OFF)
OPTION (DISABLE_DEPRECATED_GLIB "don't use deprecated glib funcions" OFF)
OPTION (DISABLE_DEPRECATED_GTK "don't use deprectacted gtk, gdk or gdk-pixbuf functions" OFF)
OPTION (DISABLE_DEPRECATED_GNOME "don't use deprecated gnome functions" OFF)
OPTION (GNC_BUILD_AS_INSTALL "Make build directory structure mirror install" ON)
# ############################################################
# Find pkg-config
FIND_PACKAGE (PkgConfig REQUIRED)
# These are also settable from the command line in a similar way.
SET(BINDIR ${CMAKE_INSTALL_PREFIX}/bin CACHE STRING "user executables")
SET(SYSCONFDIR ${CMAKE_INSTALL_PREFIX}/etc CACHE STRING "read-only single-machine data")
SET(DATAROOTDIR ${CMAKE_INSTALL_PREFIX}/share CACHE STRING "read-only arch.-independent data root")
SET(DATADIR ${DATAROOTDIR} CACHE STRING "read-only architecture-independent data")
SET(LIBDIR ${CMAKE_INSTALL_PREFIX}/lib CACHE STRING "object code libraries")
SET(LOCALEDIR ${DATAROOTDIR}/locale CACHE STRING "locale-dependent data")
SET(GNC_HELPDIR ${DATADIR} CACHE STRING "where to store help files")
SET(DATADIRNAME share)
SET(GNC_SYSTEM_XDG_DATA_DIRS /usr/local/share /usr/share)
SET(GNC_DBD_DIR ${CMAKE_PREFIX_PATH}/lib/dbd CACHE PATH "specify location of libdbi drivers")
SET(PKGLIBDIR ${CMAKE_INSTALL_PREFIX}/lib/gnucash)
IF(GNC_BUILD_AS_INSTALL)
SET(DATADIR_BUILD ${CMAKE_BINARY_DIR}/${DATADIRNAME})
SET(LIBDIR_BUILD ${CMAKE_BINARY_DIR}/lib)
SET(SYSCONFDIR_BUILD ${CMAKE_BINARY_DIR}/etc)
SET(BINDIR_BUILD ${CMAKE_BINARY_DIR}/bin)
ENDIF()
IF (WIN32)
# Help Windows find the various dependencies. We assume here that the standard advice for building
# GnuCash has been followed and that these dependencies live underneath something like C:/GCDEV, which
# should be provided as CMAKE_PREFIX_PATH on the CMake command line:
# cmake -D CMAKE_PREFIX_PATH=c/gcdev -G "MSYS Makefiles" path/to/gnucash/sources
#
SET(CMAKE_FRAMEWORK_PATH_TMP ${CMAKE_PREFIX_PATH})
SET(DEV_SUBDIRS aqbanking gnome goffice guile gwenhywfar libgsf libofx libsoup libxslt webkit)
FOREACH(subdir ${DEV_SUBDIRS})
LIST(APPEND CMAKE_FRAMEWORK_PATH_TMP ${CMAKE_PREFIX_PATH}/${subdir})
ENDFOREACH()
# Setting CMAKE_FRAMEWORK_PATH, which is intended for OS X, is a terrible hack here. But I don't
# want to mess with CMAKE_PREFIX_PATH.
SET(CMAKE_FRAMEWORK_PATH "${CMAKE_FRAMEWORK_PATH_TMP}")
SET(PKG_CONFIG_EXECUTABLE ${CMAKE_PREFIX_PATH}/gnome/bin/pkg-config.exe)
SET(SWIG_EXECUTABLE ${CMAKE_PREFIX_PATH}/swig/swig.exe)
SET(BOOST_ROOT ${CMAKE_PREFIX_PATH}/boost)
SET(GIT_EXECUTABLE ${CMAKE_PREFIX_PATH}/git-1.9.4/bin/git)
SET(REGEX_INCLUDE_PATH ${CMAKE_PREFIX_PATH}/regex/include)
SET(REGEX_LDFLAGS "-L${CMAKE_PREFIX_PATH}/regex/lib -lregex")
SET(LIBXSLT_INCLUDE_DIR ${CMAKE_PREFIX_PATH}/libxslt/include)
SET(LIBXSLT_XSLTPROC_EXECUTABLE ${CMAKE_PREFIX_PATH}/libxslt/bin/xsltproc)
# I have not yet debugged the intltool-merge file generation process on Windows.
SET(NO_INTLTOOL TRUE)
ENDIF(WIN32)
IF (APPLE)
SET (CMAKE_OSX_ARCHITECTURES "i386")
ADD_DEFINITIONS(-arch i386)
#SET(CMAKE_OSX_ARCHITECTURES "x86_64")
# For PPC build, uncomment these lines (untested):
#SET (CMAKE_OSX_ARCHITECTURES "i386;ppc")
#ADD_DEFINITIONS(-arch i386 -arch ppc
#SET (AC_APPLE_UNIVERSAL_BUILD 1)
ENDIF (APPLE)
FIND_PACKAGE(PkgConfig REQUIRED)
# The default FindPkgConfig.make code has a bug in how the setting of PKG_CONFIG_PATH is handled.
# The src/cmake_modules/GncFindPkgConfig.cmake file overrides a couple of macros in FindPkgConfig to fix.
INCLUDE (GncFindPkgConfig)
IF (NOT PKG_CONFIG_FOUND)
MESSAGE (SEND_ERROR "pkg-config not found, but is required")
ENDIF (NOT PKG_CONFIG_FOUND)
# glib et al.
PKG_CHECK_MODULES (GLIB2 glib-2.0>=2.20)
PKG_CHECK_MODULES (GCONF2 gconf-2.0>=2.22)
PKG_CHECK_MODULES (GOBJECT gobject-2.0>=2.20)
PKG_CHECK_MODULES (GMODULE gmodule-2.0>=2.20)
PKG_CHECK_MODULES (GTHREAD gthread-2.0>=2.20)
PKG_CHECK_MODULES (GLIBMM glibmm-2.4>=2.24)
PKG_CHECK_MODULES (LIBXML2 libxml-2.0>=2.7.0)
GNC_PKG_CHECK_MODULES (GLIB2 REQUIRED glib-2.0>=2.20)
GNC_PKG_CHECK_MODULES (GOBJECT REQUIRED gobject-2.0>=2.20)
GNC_PKG_CHECK_MODULES (GMODULE REQUIRED gmodule-2.0>=2.20)
GNC_PKG_CHECK_MODULES (GTHREAD REQUIRED gthread-2.0>=2.20)
GNC_PKG_CHECK_MODULES (LIBXML2 REQUIRED libxml-2.0>=2.7.0)
GNC_PKG_CHECK_MODULES (GNOMECANVAS REQUIRED libgnomecanvas-2.0)
GNC_PKG_CHECK_MODULES (LIBXSLT REQUIRED libxslt)
GNC_PKG_CHECK_MODULES (WEBKIT REQUIRED webkit-1.0>=1.2)
IF (WITH_GNUCASH)
GNC_PKG_CHECK_MODULES (GTK2 REQUIRED gtk+-2.0>=2.24.0)
GNC_PKG_CHECK_MODULES (GOFFICE REQUIRED libgoffice-0.8>=0.8.17)
ENDIF (WITH_GNUCASH)
GNC_PKG_CHECK_MODULES (ZLIB REQUIRED zlib)
IF (WITH_CUTECASH)
GNC_PKG_CHECK_MODULES (GLIBMM REQUIRED glibmm-2.4>=2.24)
ENDIF(WITH_CUTECASH)
IF (MSVC)
MESSAGE (STATUS "Hint: To create the import libraries for the gnome DLLs (e.g. gconf-2.lib), use the dlltool as follows: pexports bin/libgconf-2-4.dll > lib/libgconf-2.def ; dlltool -d lib/libgconf-2.def -D bin/libgconf-2-4.dll -l lib/gconf-2.lib")
@ -54,23 +162,41 @@ IF (MSVC)
ADD_DEFINITIONS ( -DNOMINMAX )
ENDIF (MSVC)
## Libxml2
#FIND_PACKAGE (LibXml2 REQUIRED)
FIND_PACKAGE (ZLIB REQUIRED)
IF (NOT GLIB2_FOUND)
MESSAGE (SEND_ERROR "Glib2 not found, but is required")
ENDIF (NOT GLIB2_FOUND)
FIND_PATH (LIBINTL_INCLUDE_PATH NAMES libintl.h
PATHS /usr/include /opt/gnome/include)
FIND_LIBRARY (LIBINTL_LIBRARY NAMES intl)
FIND_PATH (LTDL_INCLUDE_PATH NAMES ltdl.h PATHS /usr/include)
IF(NOT LTDL_INCLUDE_PATH-NOTFOUND)
SET(HAVE_LTDL_H 1)
ENDIF()
FIND_PROGRAM(INTLTOOL_MERGE NAMES intltool-merge HINTS ${CMAKE_PREFIX_PATH}/gnome/bin)
FIND_PROGRAM(GLIB_COMPILE_SCHEMAS glib-compile-schemas HINTS ${CMAKE_PREFIX_PATH}/gnome/bin)
FIND_PROGRAM(MSGFMT msgfmt)
IF(NOT INTLTOOL_MERGE)
MESSAGE(SEND_ERROR "Can't find intltool-merge program. Please set INTLTOOL_MERGE.")
ENDIF(NOT INTLTOOL_MERGE)
IF (NOT GLIB_COMPILE_SCHEMAS)
MESSAGE(SEND_ERROR "Can't find glib-compile-schemas program. Please set GLIB_COMPILE_SCHEMAS.")
ENDIF(NOT GLIB_COMPILE_SCHEMAS)
IF (NOT MSGFMT)
MESSAGE(SEND_ERROR "Can't find msgfmt program. Please set MSGFMT.")
ENDIF(NOT MSGFMT)
FIND_PATH (REGEX_INCLUDE_PATH NAMES regex.h
PATHS /usr/include /opt/gnome/include)
FIND_LIBRARY (REGEX_LIBRARY NAMES regex)
IF (WIN32)
FIND_PATH (HTMLHELP_INCLUDE_PATH NAMES htmlhelp.h
PATHS /usr/include)
PATHS /usr/include
HINTS ${CMAKE_PREFIX_PATH}/hh/include)
FIND_LIBRARY (HTMLHELP_LIBRARY htmlhelp HINTS ${CMAKE_PREFIX_PATH}/hh/lib)
ENDIF (WIN32)
# ############################################################
@ -79,29 +205,102 @@ ENDIF (WIN32)
FIND_PACKAGE (SWIG REQUIRED)
INCLUDE (${SWIG_USE_FILE})
# guile library and include dir
PKG_CHECK_MODULES (GUILE guile-1.8>=1.8.0)
ADD_DEFINITIONS (-DHAVE_GUILE18)
# We also need to look up the executable
FIND_PROGRAM (GUILE_EXECUTABLE guile)
# Find Guile and determine which version we are using.
# First look for guile-2.0. If not found, try to locate guile-1.8
IF (NOT GUILE_FOUND)
MESSAGE (SEND_ERROR "Guile was not found, but is required. Please set PKG_CONFIG_PATH so that guile-1.8.pc is found.")
ENDIF (NOT GUILE_FOUND)
IF (NOT GUILE_EXECUTABLE)
MESSAGe (SEND_ERROR "The guile executable was not found, but is required. Please set GUILE_EXECUTABLE.")
ENDIF (NOT GUILE_EXECUTABLE)
# guile library and include dir
GNC_PKG_CHECK_MODULES (GUILE2 guile-2.0>=2.0.9 QUIET)
IF (GUILE2_FOUND) # found guile-2.0
ADD_DEFINITIONS (-DHAVE_GUILE20)
SET(HAVE_GUILE2 TRUE)
SET(GUILE_EFFECTIVE_VERSION 2.0)
# We also need to look up the executable
FIND_PROGRAM (GUILE_EXECUTABLE guile)
FIND_PROGRAM (GUILD_EXECUTABLE guild)
SET(GUILE_INCLUDE_DIRS ${GUILE2_INCLUDE_DIRS})
SET(GUILE_LDFLAGS ${GUILE2_LDFLAGS})
IF (NOT GUILE_EXECUTABLE)
MESSAGE (SEND_ERROR "The guile executable was not found, but is required. Please set GUILE_EXECUTABLE.")
ENDIF (NOT GUILE_EXECUTABLE)
IF (NOT GUILD_EXECUTABLE)
MESSAGE (SEND_ERROR "The guild executable was not found, but is required. Please set GUILD_EXECUTABLE.")
ENDIF (NOT GUILD_EXECUTABLE)
MESSAGE(STATUS "Using guile-2.0.x")
ELSE()
# look for guile 1.8
GNC_PKG_CHECK_MODULES (GUILE1 guile-1.8>=1.8.8 QUIET)
IF (NOT GUILE1_FOUND)
MESSAGE (SEND_ERROR "Neither guile 1.8 nor guile 2.0 where find. Please set PKG_CONFIG_PATH one of these is found.")
ENDIF(NOT GUILE1_FOUND)
SET(GUILE_INCLUDE_DIRS ${GUILE1_INCLUDE_DIRS})
SET(GUILE_LDFLAGS ${GUILE1_LDFLAGS})
SET(HAVE_GUILE1 TRUE)
SET(GUILE_EFFECTIVE_VERSION 1.8)
MESSAGE(STATUS "Using guile-1.8.x")
ENDIF()
# Qt
IF (WITH_CUTECASH)
SET (QT_MIN_VERSION "4.5.0")
FIND_PACKAGE (Qt4 REQUIRED) # find and setup Qt4 for this project
ENDIF (WITH_CUTECASH)
# ############################################################
IF (WITH_AQBANKING)
GNC_PKG_CHECK_MODULES (GWENHYWFAR REQUIRED gwenhywfar)
GNC_PKG_CHECK_MODULES (AQBANKING REQUIRED aqbanking)
IF(WITH_GNUCASH)
GNC_PKG_CHECK_MODULES (GWENGUI_GTK2 REQUIRED gwengui-gtk2)
GNC_PKG_CHECK_MODULES (KTOBLZCHECK ktoblzcheck)
IF(KTOBLZCHECK_FOUND)
SET(HAVE_KTOBLZCHECK_H 1)
ENDIF(KTOBLZCHECK_FOUND)
ENDIF(WITH_GNUCASH)
ENDIF (WITH_AQBANKING)
IF (WITH_OFX)
GNC_PKG_CHECK_MODULES (LIBOFX REQUIRED libofx)
ENDIF(WITH_OFX)
# ############################################################
IF(APPLE)
EXECUTE_PROCESS(
COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=target gdk-2.0
OUTPUT_VARIABLE TARGET_RESULT
OUTPUT_STRIP_TRAILING_WHITESPACE
)
IF(TARGET_RESULT STREQUAL "quartz")
SET(GNC_PLATFORM_COCOA 1)
SET(GDK_QUARTZ 1)
GNC_PKG_CHECK_MODULES(GTK_MAC gtk-mac-integration-gtk2)
IF (GTK_MAC_FOUND)
SET(MAC_INTEGRATION 1)
FIND_LIBRARY(COCOA_LIBRARY Cocoa)
FIND_LIBRARY(SECURITY_LIBRARY Security)
FIND_LIBRARY(CARBON_LIBRARY Carbon)
SET(OSX_EXTRA_COMPILE_FLAGS -xobjective-c)
SET(OSX_EXTRA_LIBRARIES objc ${COCOA_LIBRARY} ${SECURITY_LIBRARY} ${CARBON_LIBRARY})
ENDIF(GTK_MAC_FOUND)
ENDIF()
ENDIF(APPLE)
# ############################################################
# xsltproc
FIND_PROGRAM (XSLTPROC xsltproc)
FIND_PACKAGE(LibXslt)
IF (NOT LIBXSLT_FOUND)
MESSAGE(SEND_ERROR "libxslt library not found.")
ENDIF(NOT LIBXSLT_FOUND)
# ############################################################
# libdbi
FIND_PATH (LIBDBI_INCLUDE_PATH dbi/dbi.h)
FIND_LIBRARY (LIBDBI_LIBRARY dbi)
FIND_PATH (LIBDBI_INCLUDE_PATH dbi/dbi.h HINTS ${CMAKE_PREFIX_PATH}/libdbi/include)
FIND_LIBRARY (LIBDBI_LIBRARY dbi HINTS ${CMAKE_PREFIX_PATH}/libdbi/lib)
FIND_PATH (LIBDBI_DRIVERS_DIR dbd HINTS ${CMAKE_PREFIX_PATH}/lib ${CMAKE_PREFIX_PATH}/libdbi-drivers/lib)
IF (WITH_SQL)
IF (NOT LIBDBI_INCLUDE_PATH)
MESSAGE (SEND_ERROR "Include file <dbi/dbi.h> was not found - did you install libdbi0-dev or libdbi-dev?")
@ -109,40 +308,199 @@ IF (WITH_SQL)
IF (NOT LIBDBI_LIBRARY)
MESSAGE (SEND_ERROR "Library libdbi was not found")
ENDIF (NOT LIBDBI_LIBRARY)
SET(HAVE_DBI_DBI_H 1)
ENDIF (WITH_SQL)
# ############################################################
# Qt
SET (QT_MIN_VERSION "4.5.0")
FIND_PACKAGE (Qt4 REQUIRED) # find and setup Qt4 for this project
FIND_PACKAGE(Perl)
# ############################################################
IF (WITH_AQBANKING)
PKG_CHECK_MODULES (GWENHYWFAR REQUIRED gwenhywfar)
PKG_CHECK_MODULES (AQBANKING REQUIRED aqbanking)
ENDIF (WITH_AQBANKING)
if (NOT PERL_FOUND)
MESSAGE(SEND_ERROR "Perl executable not found. Please set PERL_EXECUTABLE.")
ENDIF(NOT PERL_FOUND)
FIND_PROGRAM(POD2MAN_EXECUTABLE pod2man)
#BOOST
IF (APPLE)
# I suppose I would rather use the shared Boost libraries here, but the Boost install procedure
# does not set RPATH for it's shared library correctly. It uses a 'naked' RPATH, which requires
# that DYLD_FALLBACK_LIBRARY_PATH be set. There is supposedly a dll-path option so set RPATH, but
# I can't get it to work (http://www.boost.org/build/doc/html/bbv2/faq/dll-path.html) and neither
# can some other random person on the internet:
# http://stackoverflow.com/questions/33667795/dll-path-has-no-effect-when-building-boost
# Using static libs simplifies things.
SET (Boost_USE_STATIC_LIBS ON)
SET (Boost_USE_STATIC_RUNTIME ON)
ELSE()
SET (Boost_USE_STATIC_LIBS OFF)
SET (Boost_USE_STATIC_RUNTIME OFF)
ENDIF()
SET (Boost_USE_MULTITHREADED ON)
SET (Boost_FIND_QUIETLY ON)
FIND_PACKAGE (Boost 1.54.0 REQUIRED COMPONENTS date_time)
IF (Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
SET(HAVE_BOOST 1)
ELSE (Boost_FOUND)
MESSAGE (SEND_ERROR "Boost 1.54.0 or later is not installed, and is required. Please install it and ensure that the following libraries are built: chrono, date_time, filesystem, log, program_options, regex, signals, system, and test.")
ENDIF (Boost_FOUND)
# ############################################################
# Compiler flags
IF (APPLE)
ADD_DEFINITIONS(-Wno-unknown-attributes -Wno-typedef-redefinition)
# SET (CMAKE_OSX_ARCHITECTURES "i386")
ENDIF (APPLE)
# Also, set the C++ version to c++11
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") # FIXME: should be -std=c++11
IF (UNIX)
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wdeclaration-after-statement -Wno-pointer-sign -D_FORTIFY_SOURCE=2 -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wno-unused")
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=deprecated-declarations")
ENDIF (UNIX)
IF (MINGW)
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wdeclaration-after-statement -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wno-unused")
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wdeclaration-after-statement -Wno-pointer-sign -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wno-unused -std=gnu99")
ENDIF (MINGW)
IF (APPLE)
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedef")
ENDIF(APPLE)
IF (APPLE AND WITH_GNUCASH)
SET(CMAKE_MACOSX_RPATH ON)
ENDIF (APPLE AND WITH_GNUCASH)
IF (UNIX AND NOT APPLE)
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/lib/gnucash")
ENDIF()
SET(BUILD_SHARED_LIBS ON)
IF (GNC_BUILD_AS_INSTALL)
# Most libraries are installed to lib/gnucash, so set that as the default.
# For the handful that are installed to lib, we override the properies below
# (after the targets have been read in).
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/gnucash)
IF (XCODE_VERSION)
# FIXME: These settings break the ability to manipulate different configurations (Debug,
# FIXME: Release, etc.) in Xcode. We'll need to change the module loading C code if
# we want to support multi config.
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/lib/gnucash)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/lib/gnucash)
ENDIF()
# For binarines
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
IF (XCODE_VERSION)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
ENDIF()
ENDIF()
# ############################################################
# The subdirectories
ADD_SUBDIRECTORY (accounts)
ADD_SUBDIRECTORY (checks)
ADD_SUBDIRECTORY (doc)
ADD_SUBDIRECTORY (po)
ADD_SUBDIRECTORY (src)
# This cmake subdir must be the last add_subdirectory() call because
# it contains post-install actions to execute.
ADD_SUBDIRECTORY(cmake)
IF (GNC_BUILD_AS_INSTALL)
SET_TARGET_PROPERTIES(gnc-qof gnc-core-utils gnc-module gnc-backend-sql gnc-backend-xml-utils
gnc-business-ledger gnc-gnome PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
IF (XCODE_VERSION)
LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/lib
LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/lib
ENDIF()
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
IF (XCODE_VERSION)
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin
ENDIF()
)
IF (WIN32)
SET_TARGET_PROPERTIES(gncmod-backend-xml gncmod-stylesheets gncmod-utility-reports PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)
ENDIF()
ENDIF()
# Install DOC files from top level directory
FILE(WRITE COPYING
"This is a placeholder for the COPYING file as generated by automake.
If and when CMake becomes the default build system, we will need to
put COPYING under version control."
)
FILE(WRITE INSTALL
"This is a placeholder for the INSTALL file as generated by automake.
If and when CMake becomes the default build system, we will need to
put INSTALL under version control."
)
SET(gnucash_DOCS
AUTHORS
ChangeLog
ChangeLog.2003
ChangeLog.2004
ChangeLog.2005
ChangeLog.2006
ChangeLog.2007
ChangeLog.2008
ChangeLog.2009
ChangeLog.2010
ChangeLog.2011
ChangeLog.2012
ChangeLog.2013
ChangeLog.2014
DOCUMENTERS
HACKING
LICENSE
NEWS
README.dependencies
COPYING
INSTALL
)
INSTALL(FILES ${gnucash_DOCS} DESTINATION share/doc/gnucash)
#For windows, copy in some DLLs from Mingw
IF (WIN32)
SET(MINGW_DLLS ${CMAKE_PREFIX_PATH}/mingw/bin/libstdc++-6.dll ${CMAKE_PREFIX_PATH}/mingw/bin/libgcc_s_dw2-1.dll)
INSTALL(PROGRAMS ${MINGW_DLLS} DESTINATION bin)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${MINGW_DLLS} DESTINATION ${BINDIR_BUILD}
# Do permissions matter for windows?
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
ENDIF()
ENDIF()
# ############################################################
# Package creation rules
IF (WITH_CUTECASH)
SET (CUTECASH_VERSION_MAJOR "0")
SET (CUTECASH_VERSION_MINOR "1")
SET (CUTECASH_VERSION_PATCH "0")
SET (CUTECASH_VERSION_NANO "0")
SET (CPACK_PACKAGE_NAME "Cutecash")
SET (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Cutecash Free Finance Software")
SET (CPACK_PACKAGE_VERSION_MAJOR ${CUTECASH_VERSION_MAJOR})
@ -152,7 +510,7 @@ SET (CPACK_PACKAGE_VENDOR "Christian Stimming")
SET (CPACK_SOURCE_IGNORE_FILES "/\\\\.svn/;/\\\\.git/;.*~;build.*;html;Debug;Release")
SET (CPACK_STRIP_FILES "bin/cutecash")
#SET (CPACK_PACKAGE_EXECUTABLES "bin/carclient")
ENDIF (WITH_CUTECASH)
IF(UNIX)
SET(CPACK_GENERATOR "TGZ")
ENDIF(UNIX)

67
accounts/CMakeLists.txt Normal file
View File

@ -0,0 +1,67 @@
SET(accounts_SUBDIRS
C
cs
da
de_AT
de_CH
de_DE
el_GR
en_GB
es_ES
es_MX
fi_FI
fr_CA
fr_CH
fr_FR
hu_HU
it
# ja
ko
lt
lv
# nb
# nl
pl
pt_BR
pt_PT
ru
sk
sv_AX
sv_FI
sv_SE
tr_TR
zh_CN
zh_HK
zh_TW
)
# Most of the account subdirectories that have acctchrt_full.gnucash-xea do not install it. Don't know why.
# But these subdirectories do.
SET(accounts_fullcharts_SUBDIRS ja nb nl)
FOREACH(dir ${accounts_SUBDIRS})
INSTALL(DIRECTORY ${dir} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/gnucash/accounts
PATTERN Makefile.* EXCLUDE
PATTERN acctchrt_full.gnucash-xea EXCLUDE
PATTERN README.bas_2012 EXCLUDE)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${dir} DESTINATION ${DATADIR_BUILD}/gnucash/accounts
PATTERN Makefile.* EXCLUDE
PATTERN acctchrt_full.gnucash-xea EXCLUDE
PATTERN README.bas_2012 EXCLUDE
)
ENDIF()
ENDFOREACH(dir)
FOREACH(dir ${accounts_fullcharts_SUBDIRS})
INSTALL(DIRECTORY ${dir} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/gnucash/accounts
PATTERN Makefile.* EXCLUDE
PATTERN README.bas_2012 EXCLUDE)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${dir} DESTINATION ${DATADIR_BUILD}/gnucash/accounts
PATTERN Makefile.* EXCLUDE
PATTERN README.bas_2012 EXCLUDE
)
ENDIF()
ENDFOREACH(dir)

15
checks/CMakeLists.txt Normal file
View File

@ -0,0 +1,15 @@
SET(checks_DATA
deluxe.chk
liberty.chk
quicken.chk
quicken_wallet.chk
voucher.chk
quicken_check_21.chk
quicken_3part.chk
)
INSTALL(FILES ${checks_DATA} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/gnucash/checks)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${checks_DATA} DESTINATION ${DATADIR_BUILD}/gnucash/checks)
ENDIF()

26
cmake/CMakeLists.txt Normal file
View File

@ -0,0 +1,26 @@
# Post install actions go here.
INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${GLIB_COMPILE_SCHEMAS} ${CMAKE_INSTALL_PREFIX}/share/glib-2.0/schemas)")
IF (APPLE)
INSTALL(CODE "EXECUTE_PROCESS(
COMMAND /usr/bin/install_name_tool -add_rpath ${CMAKE_INSTALL_PREFIX}/lib
-add_rpath ${CMAKE_INSTALL_PREFIX}/lib/gnucash
${CMAKE_INSTALL_PREFIX}/bin/gnucash)")
ENDIF(APPLE)
IF (GNC_BUILD_AS_INSTALL)
SET(schema-targets aqb-gschema business-gnome-gschema csv-exp-gschema csv-imp-gschema
generic-import-gschema gnome-gschema gnome-utils-gschema ofx-gschema qif-imp-gschema)
SET(SCHEMA_DIRECTORY ${DATADIR_BUILD}/glib-2.0/schemas)
ADD_CUSTOM_COMMAND(
OUTPUT ${SCHEMA_DIRECTORY}/gschemas.compiled
COMMAND ${CMAKE_COMMAND} -E env ${GLIB_COMPILE_SCHEMAS} ${SCHEMA_DIRECTORY}
DEPENDS ${schema-targets}
)
ADD_CUSTOM_TARGET(compiled-schemas ALL DEPENDS ${SCHEMA_DIRECTORY}/gschemas.compiled)
ENDIF(GNC_BUILD_AS_INSTALL)

218
cmake/README_CMAKE.txt Normal file
View File

@ -0,0 +1,218 @@
Using CMake to build GnuCash
============================
== Intro
As part of his CuteCash work, Christian Stimming added support for
using http://www.cmake.org[CMake] to build the part of GnuCash that
went into CuteCash. This work extends the use of CMake to cover all of
GnuCash proper such that GnuCash itself can be fully compiled with
CMake.
Some advantages of using CMake:
* The build time on Windows drops from around an hour to just a few
minutes.
* CMake supports the generation of build files for several IDEs
such as Xcode, Eclipse, KDevelop and others. The open source Qt
Creator and the commercial CLion C/C++ IDE from JetBrains can use
CMake files natively.
* The CMake language, though with significant issues, is still
easier to maintain than autotools.
This setup also uses the http://www.ninja-build.org[Ninja] build
system to enable fast and parallel builds on Windows. (On POSIX
systems [OS X, Linux, FreeBSD, etc.] Ninja does not seem significantly
faster that using the default Makefile generator to me.)
== Scope
The scope of the current work is to duplicate the `make` and `make
install` actions as the Autotools system would. Currently, there is no
support for `make check`, `make dist`, `make distcheck` or similar
targets. Other limitations include:
* Not all options available in `./configure` have been ported to
this CMake system.
* Password management is included for OS X, but not
tested. Gnome-keyring and libsecret support has not
been ported over.
* The Xcode build only supports the Debug configuration. Others such
as Release are not supported yet.
* Python support has not been ported over.
* Visual Studio support is out of scope. While CMake supports
generating build files for Visual Studio on Windows, it is not
likely at this point that either GnuCash or all of its
dependencies can be built using the Microsoft compiler tool chain.
== Known Issues
* Sometimes the Tip of the Day is empty. I've got a stray
carriage return somewhere.
* Clicking on 'Start AqBanking Wizard' in the AqBanking setup will
cause a crash. I have not yet investigated this.
== Using CMake on Linux, OS X, etc.
=== Prerequisites
The CMake setup does not support building and installing dependencies
(although it probably could some day). So you need to have the
dependencies available, most likely by having run the existing
Autotools build at least once. Various resources on the GnuCash wiki
will have advice on how to do this.
You will need to have CMake and optionally Ninja installed, either
from distro package repositories or by hand. You need at least version
3.1 of CMake.
=== Running CMake
The next step is to invoke CMake to generate the build system. Before
running CMake, you need to create a build directory:
$ cd .. # back to workdir
$ mkdir gnucash-build
$ cd gnucash-build
Then decide what cmake command line options you will need:
* If you want to install after building, add
`-D CMAKE_INSTALL_PREFIX=/path/to/install`
* If your dependencies are installed in a non-standard place as is
typical for building on OS X, put
`-D CMAKE_PREFIX_PATH=/path/to/installed/depends`
on the command line.
* If you want to use the Ninja generator, put `-G Ninja` on the
command line.
* If you want to use the Xcode generator on OS X, put `-G Xcode` on
the command line.
* If you don't specify a generator, Makefiles will be generated.
* Finally, put the path to your source directory last.
Here, that is ../gnucash
* There are other options available; look in the `OPTIONS` section of
the top-level `CMakeLists.txt` file. For example, you can disable
SQL using these options.
Some examples:
* Build on Linux, don't want to install, use the Makefile generator:
$ cmake ../gnucash
* Build on Linux, install to /tmp/gnucash, use Ninja generator:
$ cmake -D CMAKE_INSTALL_PREFIX=/tmp/gnucash -G Ninja ../gnucash
* Build on OS X, install to /tmp/gnucash, use Ninja generator:
$ cmake -D CMAKE_INSTALL_PREFIX=/tmp/gnucash -D CMAKE_PREFIX_PATH=$HOME/gnucash-unstable -G Ninja ../gnucash
* The same, but use the Xcode generator:
$ cmake -D CMAKE_INSTALL_PREFIX=/tmp/gnucash -D CMAKE_PREFIX_PATH=$HOME/gnucash-unstable -G Xcode ../gnucash
=== Building
The Xcode, Ninja and Makefile generators all support parallel builds,
so decide how many cores you want to use. Ninja will pick a sensible
default.
If you chose to configure for installation, you can use the `install`
target for each generator. The Makefile and Ninja generators also
support a verbose option if you want to see all of the command lines
scroll by. Xcodebuild seems to show all the gory details whether you
want them or not.
For Ninja, use the line below. Note that the executable is called
`ninja-build` on Fedora. Also, Ninja supports the `NINJA_STATUS`
environment variable to give status on the build. I like to use
`NINJA_STATUS="%es [%p/%s/%t] "`.
$ ninja [-v] [install]
For Makefiles:
$ make [VERBOSE=1] -j N [install]
For Xcode via the command line (see below to build from within Xcode):
$ xcodebuild -jobs N [-target=install]
=== Launching GnuCash
Assuming the build completes successfully, in all cases you can run
directly from the build directory:
$ bin/gnucash
In you chose to install, you can switch to the install directory and
do the same.
== Using CMake and Ninja on Windows
For Windows, follow the instructions at
https://github.com/Gnucash/gnucash-on-windows to the point where you
are ready to run install.sh.
Edit custom.sh to add these lines at the bottom:
WITH_CMAKE=yes
WITH_NINJA=yes
Ensure that your custom.sh file contains this line:
MSYS_DIR=c:\\gcdev\\mingw\\msys\\1.0
Remove or move any existing install at /c/gcdev/gnucash/inst.
Then continue to follow the existing build instructions.
At this writing, generating a distribution with the CMake build
via dist.sh has not been tested.
== Using Xcode on OS X
CMake can generate build files for Xcode such that GnuCash can be
built, run and debugged from within Xcode. Follow the instructions
above to the point where you would use `xcodebuild` to launch the
build. Instead, launch Xcode by doing:
$ open Gnucash.xcodeproj
Xcode 7 will pop up a window about Autocreate Schemes. I usually
choose "Manually Manage Schemes". On the next window, use the "\+"
symbol to use the "ALL_BUILD" scheme. Then click on OK. If you want to
be able to run the equivalent of "make install" from within Xcode, use
the "+" symbol again and choose the "install" scheme.
Back in the Xcode main window, make sure the "ALL_BUILD" scheme is
selected (next to the stop symbol). Click on "ALL_BUILD" and
then "Edit Scheme". On the "Info" tab, choose the executable to be
"gnucash".
Now use Command-B to build (or Product -> Build) to start the
build. When it finishes, click on the play symbol (or Product
-> Run) to verify that you can launch GnuCash from within Xcode. If
that works, you can now set breakpoints with Xcode and debug away.
To run the install script, click on the "ALL_BUILD" scheme and change
it to "install". Then press the play button to run the script.
That's it.

72
doc/CMakeLists.txt Normal file
View File

@ -0,0 +1,72 @@
ADD_SUBDIRECTORY(examples)
SET(doc_DATA
README.francais
README.german
README-de.win32-bin.txt
README-fr.win32-bin.txt
README-it.win32-bin.txt
README-lv.win32-bin.txt
README-nl.win32-bin.txt
README-zh_CN.win32-bin.txt
README-zh_TW.win32-bin.txt
README.win32-bin.txt
guile-hackers.txt
projects.html
)
INSTALL(FILES ${doc_DATA} DESTINATION share/doc/gnucash)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${doc_DATA} DESTINATION ${DATADIR_BUILD}/doc/gnucash)
ENDIF()
EXECUTE_PROCESS(
COMMAND ${CMAKE_COMMAND} -E env date +"%B %Y"
OUTPUT_VARIABLE DATE
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# Generate the tip of the day file.
EXECUTE_PROCESS(
COMMAND ${CMAKE_C_COMPILER} -E -P -x c -DN_\(x\)=x -o ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list.tmp ${CMAKE_CURRENT_SOURCE_DIR}/tip_of_the_day.list.in
)
FILE(STRINGS ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list.tmp TIP_OF_THE_DAY_LINES)
SET(TOTD_OUTPUT "")
SET(FIRST_LINE TRUE)
FOREACH(line ${TIP_OF_THE_DAY_LINES})
STRING(REGEX REPLACE "^ *\"" "" line2 "${line}")
STRING(REGEX REPLACE "\" *$" "" line3 "${line2}")
IF (NOT FIRST_LINE)
LIST(APPEND TOTD_OUTPUT "\n\n")
ENDIF()
SET(FIRST_LINE FALSE)
LIST(APPEND TOTD_OUTPUT "${line3}\n")
ENDFOREACH()
LIST(APPEND TOTD_OUTPUT "\n")
STRING(CONCAT FINAL_TOTD ${TOTD_OUTPUT})
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list "${FINAL_TOTD}")
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list DESTINATION share/gnucash)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list
DESTINATION ${DATADIR_BUILD}/gnucash)
ENDIF()
# ---
GNC_CONFIGURE(gnucash.1.in gnucash.1 )
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.1 DESTINATION share/man/man1)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/gnucash.1
DESTINATION ${DATADIR_BUILD}/gnucash)
ENDIF()

View File

@ -0,0 +1,24 @@
SET(examples_DATA
Money95bank_fr.qif
Money95invst_fr.qif
Money95mfunds_fr.qif
Money95stocks_fr.qif
README
README_invoice
abc-all.qif
abc.qif
bogus.qif
cbb-export.qif
currency_tree_xml.gnucash
every.qif
invoice.csv
ms-money.qif
quicktest.qif
swipe.qif
taxreport.gnucash
web.qif
)
INSTALL(FILES ${examples_DATA} DESTINATION share/doc/gnucash)

48
po/CMakeLists.txt Normal file
View File

@ -0,0 +1,48 @@
# Set of available languages.
SET (TP_LINGUAS az ca cs da eu fa ja nl pt rw sk sr sv tr uk zh_CN)
# already marked as external at TP:
SET (GC_LINGUAS ar bg de el en_GB es fi fr gu he hi hu it kn ko lt lv mr nb ne pl pt_BR ro ru ta te ur vi zh_TW)
# not marked or no TP team:
SET (NEW_LINGUAS as brx doi es_NI kok kok@latin ks mai mni mni@bengali)
SET (ALL_LINGUAS ${TP_LINGUAS} ${GC_LINGUAS} ${NEW_LINGUAS})
SET (CATALOGS "")
SET (BUILD_CATALOGS "")
FOREACH(lingua ${ALL_LINGUAS})
SET(_OUTPUT_FILE ${lingua}.gmo)
LIST(APPEND CATALOGS ${_OUTPUT_FILE})
ADD_CUSTOM_COMMAND(
OUTPUT ${_OUTPUT_FILE}
COMMAND ${CMAKE_COMMAND} -E env ${MSGFMT} -o ${_OUTPUT_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${lingua}.po
)
IF (GNC_BUILD_AS_INSTALL)
SET(_BUILD_FILE_DIR ${DATADIR_BUILD}/locale/${lingua}/LC_MESSAGES)
MAKE_DIRECTORY(${_BUILD_FILE_DIR})
SET(_BUILD_FILE ${_BUILD_FILE_DIR}/gnucash.gmo)
LIST(APPEND BUILD_CATALOGS ${_BUILD_FILE})
#ADD_CUSTOM_COMMAND(
# OUTPUT ${_BUILD_FILE}
# COMMAND ${CMAKE_COMMAND} make_directory ${_BUILD_FILE_DIR}
#
#)
ADD_CUSTOM_COMMAND(
OUTPUT ${_BUILD_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${lingua}.gmo ${_BUILD_FILE}
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT_FILE}
#APPEND
)
ENDIF()
ENDFOREACH(lingua)
ADD_CUSTOM_TARGET(po-gmo ALL DEPENDS ${CATALOGS})
IF (GNC_BUILD_AS_INSTALL)
ADD_CUSTOM_TARGET(po-gmo-build ALL DEPENDS ${BUILD_CATALOGS})
ENDIF()
FOREACH(lingua ${ALL_LINGUAS})
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${lingua}.gmo RENAME gnucash.mo DESTINATION share/locale/${lingua}/LC_MESSAGES)
ENDFOREACH(lingua)

View File

@ -6,6 +6,8 @@
SET (GETTEXT_PACKAGE "gnucash")
SET(GNOME 1)
IF (WIN32)
SET (HAVE_SCANF_I64D 1)
SET (HAVE_HTMLHELPW 1)
@ -36,6 +38,20 @@ CHECK_INCLUDE_FILES (unistd.h HAVE_UNISTD_H)
CHECK_INCLUDE_FILES (utmp.h HAVE_UTMP_H)
CHECK_INCLUDE_FILES (wctype.h HAVE_WCTYPE_H)
IF (NOT DISABLE_NLS)
SET(ENABLE_NLS 1)
ENDIF(NOT DISABLE_NLS)
IF (ENABLE_DEBUG)
SET(DEBUG_MEMORY 1)
ENDIF(ENABLE_DEBUG)
IF (ENABLE_BINRELOC)
IF (UNIX OR MINGW)
SET(BR_PTHREAD 1)
ENDIF(UNIX OR MINGW)
ENDIF(ENABLE_BINRELOC)
IF (UNIX OR MINGW)
SET (HAVE_BIND_TEXTDOMAIN_CODESET 1)
SET (HAVE_DCGETTEXT 1)
@ -50,12 +66,12 @@ IF (UNIX OR MINGW)
SET (_POSIX_PTHREAD_SEMANTICS 1)
SET (_TANDEM_SOURCE 1)
SET (__EXTENSIONS__ 1)
SET (WORDS_BIGENDIAN 1)
ENDIF (UNIX OR MINGW)
IF (UNIX)
SET (HAVE_CHOWN 1)
SET (HAVE_DLERROR 1)
SET (HAVE_DLSYM 1)
SET (HAVE_GETHOSTID 1)
SET (HAVE_GETHOSTNAME 1)
SET (HAVE_GETPPID 1)
@ -67,14 +83,59 @@ IF (UNIX)
SET (HAVE_LINK 1)
SET (HAVE_LOCALTIME_R 1)
SET (HAVE_PTHREAD_MUTEX_INIT 1)
SET (HAVE_PTHREAD_PRIO_INHERIT 1)
SET (HAVE_SCANF_LLD 1)
SET (HAVE_SETENV 1)
SET (HAVE_STPCPY 1)
SET (HAVE_STRFMON 1)
SET (HAVE_STRPTIME 1)
SET (HAVE_STRUCT_TM_GMTOFF 1)
SET (HAVE_TIMEGM 1)
SET (HAVE_TOWUPPER 1)
SET (GNC_PLATFORM_POSIX 1)
ENDIF (UNIX)
IF (WIN32)
SET (GNC_PLATFORM_WINDOWS 1)
ENDIF (WIN32)
IF (APPLE)
# FIXME: HANDLE gtk-mac-integration-gtk2
SET(GNC_PLATFORM_DARWIN 1)
SET(GNC_PLATFORM_OSX 1)
SET(HAVE_OSX_KEYCHAIN 1)
ENDIF(APPLE)
IF(GLIB2_VERSION VERSION_GREATER 2.32.0 OR GLIB2_VERSION VERSION_EQUAL 2.32.0)
SET(HAVE_GLIB_2_32 1)
ENDIF()
IF(GLIB2_VERSION VERSION_GREATER 2.36.0 OR GLIB2_VERSION VERSION_EQUAL 2.36.0)
SET(HAVE_GLIB_2_36 1)
ENDIF()
IF(GLIB2_VERSION VERSION_GREATER 2.38.0 OR GLIB2_VERSION VERSION_EQUAL 2.38.0)
SET(HAVE_GLIB_2_38 1)
ENDIF()
SET(HAVE_WEBKIT_WEB_FRAME_PRINT_FULL 1)
SET(HAVE_WEBKIT_WEB_VIEW_LOAD_URI 1)
IF(DISABLE_DEPRECATED_GNOME)
SET(GNOME_DISABLE_DEPRECATED 1)
ENDIF(DISABLE_DEPRECATED_GNOME)
IF(DISABLE_DEPRECATED_GTK)
SET(GTK_DISABLE_DEPRECATED 1)
SET(GDK_DISABLE_DEPRECATED 1)
SET(GDK_PIXMAP_DISABLE_DEPRECATED 1)
ENDIF(DISABLE_DEPRECATED_GTK)
IF(DISABLE_DEPRECATED_GLIB)
SET(G_DISABLE_DEPRECATED 1)
ENDIF(DISABLE_DEPRECATED_GLIB)
ADD_DEFINITIONS (-DHAVE_CONFIG_H)
SET (CONFIG_H ${CMAKE_CURRENT_BINARY_DIR}/config.h)
@ -82,8 +143,16 @@ CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake.in ${CONFIG_H})
SET (SWIG_RUNTIME_H ${CMAKE_CURRENT_BINARY_DIR}/swig-runtime.h)
#ADD_CUSTOM_COMMAND (
# OUTPUT ${SWIG_RUNTIME_H}
# DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
# COMMAND ${SWIG_EXECUTABLE} -guile -external-runtime ${SWIG_RUNTIME_H}
#)
# ############################################################
SET(SCHEME_INSTALLED_SOURCE_DIR ${CMAKE_INSTALL_PREFIX}/share/gnucash/scm)
SET(SCHEME_INSTALLED_CACHE_DIR ${CMAKE_INSTALL_PREFIX}/lib/gnucash/scm/ccache/${GUILE_EFFECTIVE_VERSION})
# The subdirectories
ADD_SUBDIRECTORY (libqof)
ADD_SUBDIRECTORY (core-utils)
@ -96,7 +165,30 @@ IF (WITH_SQL)
ADD_SUBDIRECTORY (backend/dbi)
ADD_SUBDIRECTORY (backend/sql)
ENDIF (WITH_SQL)
ADD_SUBDIRECTORY (optional/gtkmm)
ADD_SUBDIRECTORY (gnc)
IF (WITH_GNUCASH)
ADD_SUBDIRECTORY (bin)
ADD_SUBDIRECTORY (business/business-ledger)
ADD_SUBDIRECTORY (business/business-gnome)
ADD_SUBDIRECTORY (gnome)
ADD_SUBDIRECTORY (gnome-utils)
ADD_SUBDIRECTORY (gnome-search)
ADD_SUBDIRECTORY (html)
ADD_SUBDIRECTORY (plugins/bi_import)
ADD_SUBDIRECTORY (plugins/customer_import)
ADD_SUBDIRECTORY (pixmaps)
ADD_SUBDIRECTORY (quotes)
ADD_SUBDIRECTORY (register/ledger-core)
ADD_SUBDIRECTORY (register/register-core)
ADD_SUBDIRECTORY (register/register-gnome)
ADD_SUBDIRECTORY(report)
ADD_SUBDIRECTORY (scm)
ADD_SUBDIRECTORY (tax/us)
ADD_SUBDIRECTORY (test-core)
ENDIF (WITH_GNUCASH)
IF (WITH_CUTECASH)
ADD_SUBDIRECTORY (optional/gtkmm)
ADD_SUBDIRECTORY (gnc)
ENDIF (WITH_CUTECASH)

View File

@ -1,26 +1,17 @@
# CMakeLists.txt for src/engine
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.app-utils\")
# Build the library
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${HTMLHELP_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for pow.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof) # for qof.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module) # for gnc-glib-utils.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils) # for gnc-glib-utils.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/app-utils/calculation) # for finproto.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine) # for gnc-engine.h
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src/engine) # for swig-runtime.h
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}) # for <option-util.h>
SET (app_utils_noinst_HEADERS
calculation/finvar.h
calculation/finproto.h
calculation/fin_spl_protos.h
calculation/fin_static_proto.h
)
SET (app_utils_HEADERS
QuickFill.h
business-helpers.h
business-options.h
file-utils.h
gfec.h
gnc-basic-gobject.h
@ -32,17 +23,17 @@ SET (app_utils_HEADERS
gnc-euro.h
gnc-exp-parser.h
gnc-gettext-util.h
gnc-gsettings.h
gnc-help-utils.h
gnc-helpers.h
gnc-prefs-utils.h
gnc-state.h
gnc-sx-instance-model.h
gnc-ui-util.h
gnc-ui-balances.h
guile-util.h
option-util.h
calculation/finvar.h
calculation/finproto.h
calculation/fin_spl_protos.h
calculation/fin_static_proto.h
)
# Command to generate the swig-app-utils.c wrapper file
@ -52,6 +43,8 @@ GNC_ADD_SWIG_COMMAND (${SWIG_APP_UTILS_C} ${CMAKE_CURRENT_SOURCE_DIR}/app-utils.
SET (app_utils_SOURCES
calculation/expression_parser.c
calculation/fin.c
business-helpers.c
business-options.c
QuickFill.c
file-utils.c
gfec.c
@ -63,8 +56,11 @@ SET (app_utils_SOURCES
gnc-euro.c
gnc-exp-parser.c
gnc-gettext-util.c
gnc-gsettings.c
gnc-helpers.c
gnc-prefs-utils.c
gnc-sx-instance-model.c
gnc-state.c
gnc-ui-util.c
gnc-ui-balances.c
gncmod-app-utils.c
@ -77,7 +73,121 @@ IF (WIN32)
SET (app_utils_SOURCES ${app_utils_SOURCES} gnc-help-utils.c)
ENDIF (WIN32)
ADD_LIBRARY (app-utils
SET_SOURCE_FILES_PROPERTIES (${app_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
ADD_LIBRARY (gncmod-app-utils
${app_utils_SOURCES}
${app_utils_HEADERS}
)
${app_utils_noinst_HEADERS}
)
TARGET_LINK_LIBRARIES(gncmod-app-utils gncmod-engine gnc-module
${GTK2_LDFLAGS} ${LIBXML2_LDFLAGS} ${LIBXSLT_LDFLAGS}
)
IF (WIN32)
TARGET_LINK_LIBRARIES(gncmod-app-utils ${HTMLHELP_LIBRARY})
ENDIF(WIN32)
TARGET_INCLUDE_DIRECTORIES (gncmod-app-utils
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/calculation
${LIBXML2_INCLUDE_DIRS}
${LIBXSLT_INCLUDE_DIRS}
${HTMLHELP_INCLUDE_PATH}
${GTK2_INCLUDE_DIRS}
)
TARGET_COMPILE_DEFINITIONS (gncmod-app-utils PRIVATE -DG_LOG_DOMAIN=\"gnc.app-utils\")
INSTALL(TARGETS gncmod-app-utils
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin
)
INSTALL(FILES ${app_utils_HEADERS} DESTINATION include/gnucash)
FILE(READ ${CMAKE_SOURCE_DIR}/src/import-export/ofx/migratable-prefs-ofx.xml MIGRATABLE_PREFS_OFX)
FILE(READ ${CMAKE_SOURCE_DIR}/src/import-export/aqb/migratable-prefs-aqbanking.xml MIGRATABLE_PREFS_AQBANKING)
SET(MIGRATABLE_PREFS_XML ${CMAKE_CURRENT_BINARY_DIR}/migratable-prefs.xml)
IF (GNC_BUILD_AS_INSTALL)
SET(MIGRATABLE_PREFS_XML ${DATADIR_BUILD}/gnucash/migratable-prefs.xml)
FILE(COPY make-prefs-migration-script.xsl DESTINATION ${DATADIR_BUILD}/gnucash)
ENDIF()
CONFIGURE_FILE(migratable-prefs.xml.in ${MIGRATABLE_PREFS_XML})
INSTALL(FILES ${MIGRATABLE_PREFS_XML} DESTINATION share/gnucash)
INSTALL(FILES make-prefs-migration-script.xsl DESTINATION share/gnucash)
# And now handle scheme files
SET (app_utils_SCHEME_2
app-utils.scm
)
SET (app_utils_SCHEME_1
hooks.scm
business-options.scm
c-interface.scm
config-var.scm
date-utilities.scm
migrate-prefs.scm
options.scm
prefs.scm
simple-obj.scm
)
SET(app_utils_SCHEME_3
business-prefs.scm
)
SET(GUILE_MODULES src/engine)
SET(GUILE_LOAD_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/scm)
SET(GUILE_LIBRARY_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/libqof/qof)
SET(GUILE_DEPENDS gncmod-app-utils scm-core-utils scm-engine scm-scm)
GNC_ADD_SCHEME_TARGETS(scm-gettext
gettext.scm
gnucash
src/app-utils
""
""
gncmod-app-utils
FALSE
)
GNC_ADD_SCHEME_TARGETS(scm-app-utils-1
"${app_utils_SCHEME_1}"
""
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"scm-gettext;${GUILE_DEPENDS}"
FALSE
)
GNC_ADD_SCHEME_TARGETS(scm-app-utils-2
"${app_utils_SCHEME_2}"
"gnucash"
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
scm-app-utils-1
FALSE
)
GNC_ADD_SCHEME_TARGETS(scm-app-utils-3
"${app_utils_SCHEME_3}"
""
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
scm-app-utils-2
FALSE
)
ADD_CUSTOM_TARGET(scm-app-utils ALL DEPENDS scm-app-utils-3 scm-app-utils-2 scm-app-utils-1 scm-gettext)

View File

@ -1,32 +1,47 @@
# CMakeLists.txt for src/backend/dbi
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.backend.dbi\")
# Source file gncmod-backend-dbi.c does not appear to be use in Makefile.in, so not included here.
INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${LIBDBI_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for gnc-ui.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof)
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils)
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine)
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/app-utils)
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/backend/sql)
SET (libgnc_backend_dbi_SOURCES
gnc-backend-dbi.c
SET (backend_dbi_SOURCES
gnc-backend-dbi.cpp
)
SET (libgnc_backend_dbi_HEADERS
gnc-backend-dbi.h
SET (backend_dbi_noinst_HEADERS
gnc-backend-dbi.h gnc-backend-dbi-priv.h
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${libgnc_backend_dbi_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET_SOURCE_FILES_PROPERTIES (${backend_dbi_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
ADD_LIBRARY (gnc-backend-dbi
${libgnc_backend_dbi_SOURCES}
${libgnc_backend_dbi_HEADERS}
ADD_LIBRARY (gncmod-backend-dbi
${backend_dbi_SOURCES}
${backend_dbi_noinst_HEADERS}
)
TARGET_LINK_LIBRARIES(gncmod-backend-dbi gnc-backend-sql gncmod-engine gnc-qof ${GTK2_LDFLAGS} ${LIBDBI_LIBRARY})
TARGET_COMPILE_DEFINITIONS(gncmod-backend-dbi PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.dbi\")
TARGET_INCLUDE_DIRECTORIES(gncmod-backend-dbi PRIVATE ${LIBDBI_INCLUDE_PATH})
INSTALL(TARGETS gncmod-backend-dbi
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
# No headers to install
# FIXME: Below is a hack to create .libs/libgncmod-backend-dbi to silence some complaints
# from guile when compiling. Eventually, fix the guile module loader to not expect items
# to be in .libs. At this time, WIN32 does not use guile-2, so no need for this.
IF (NOT WIN32)
SET(_LINK_TARGET ${CMAKE_CURRENT_BINARY_DIR}/.libs/libgncmod-backend-dbi${CMAKE_SHARED_LIBRARY_SUFFIX})
FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/.libs)
ADD_CUSTOM_COMMAND(
OUTPUT ${_LINK_TARGET}
COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE:gncmod-backend-dbi> ${_LINK_TARGET}
DEPENDS gnc-backend-dbi
)
ADD_CUSTOM_TARGET(gncmod-backend-dbi-link ALL DEPENDS gncmod-backend-dbi ${_LINK_TARGET})
ENDIF()

View File

@ -1,46 +1,33 @@
# CMakeLists.txt for src/backend/dbi
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.backend.sql\")
INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for gnc-ui.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof)
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils)
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module)
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine)
SET (libgnc_backend_sql_SOURCES
gnc-backend-sql.c
gnc-account-sql.c
gnc-address-sql.c
gnc-bill-term-sql.c
gnc-book-sql.c
gnc-budget-sql.c
gnc-commodity-sql.c
gnc-customer-sql.c
gnc-employee-sql.c
gnc-entry-sql.c
gnc-invoice-sql.c
gnc-job-sql.c
gnc-lots-sql.c
gnc-order-sql.c
gnc-owner-sql.c
gnc-price-sql.c
gnc-recurrence-sql.c
gnc-schedxaction-sql.c
gnc-slots-sql.c
gnc-tax-table-sql.c
gnc-transaction-sql.c
gnc-vendor-sql.c
escape.c
SET (backend_sql_SOURCES
gnc-backend-sql.cpp
gnc-account-sql.cpp
gnc-address-sql.cpp
gnc-bill-term-sql.cpp
gnc-book-sql.cpp
gnc-budget-sql.cpp
gnc-commodity-sql.cpp
gnc-customer-sql.cpp
gnc-employee-sql.cpp
gnc-entry-sql.cpp
gnc-invoice-sql.cpp
gnc-job-sql.cpp
gnc-lots-sql.cpp
gnc-order-sql.cpp
gnc-owner-sql.cpp
gnc-price-sql.cpp
gnc-recurrence-sql.cpp
gnc-schedxaction-sql.cpp
gnc-slots-sql.cpp
gnc-tax-table-sql.cpp
gnc-transaction-sql.cpp
gnc-vendor-sql.cpp
escape.cpp
)
SET (libgnc_backend_sql_HEADERS
SET (backend_sql_noinst_HEADERS
gnc-account-sql.h
gnc-address-sql.h
gnc-backend-sql.h
@ -67,9 +54,22 @@ SET (libgnc_backend_sql_HEADERS
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${libgnc_backend_sql_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET_SOURCE_FILES_PROPERTIES (${gnc_backend_sql_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
ADD_LIBRARY (gnc-backend-sql
${libgnc_backend_sql_SOURCES}
${libgnc_backend_sql_HEADERS}
)
${backend_sql_SOURCES}
${backend_sql_noinst_HEADERS}
)
TARGET_LINK_LIBRARIES(gnc-backend-sql gncmod-engine gnc-qof)
TARGET_COMPILE_DEFINITIONS (gnc-backend-sql PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.sql\")
TARGET_INCLUDE_DIRECTORIES(gnc-backend-sql PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
INSTALL(TARGETS gnc-backend-sql
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin)
# No headers to install

View File

@ -1,66 +1,136 @@
# CMakeLists.txt for src/backend/xml
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.backend.xml\")
INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${LIBXML2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for gnc-ui.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof)
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils)
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module)
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine)
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}) # when building swig-gnc-module.c
# Command to generate the swig-engine.c wrapper file
SET (SWIG_GNC_MODULE_C ${CMAKE_CURRENT_BINARY_DIR}/swig-gnc-module.c)
GNC_ADD_SWIG_COMMAND (${SWIG_GNC_MODULE_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnc-module.i)
SET (libgnc_backend_xml_SOURCES
gnc-account-xml-v2.c
gnc-address-xml-v2.c
gnc-bill-term-xml-v2.c
gnc-book-xml-v2.c
gnc-budget-xml-v2.c
gnc-commodity-xml-v2.c
gnc-customer-xml-v2.c
gnc-employee-xml-v2.c
gnc-entry-xml-v2.c
gnc-freqspec-xml-v2.c
gnc-invoice-xml-v2.c
gnc-job-xml-v2.c
gnc-lot-xml-v2.c
gnc-order-xml-v2.c
gnc-owner-xml-v2.c
gnc-pricedb-xml-v2.c
gnc-recurrence-xml-v2.c
gnc-schedxaction-xml-v2.c
gnc-tax-table-xml-v2.c
gnc-transaction-xml-v2.c
gnc-vendor-xml-v2.c
gnc-xml-helper.c
io-example-account.c
io-gncxml-gen.c
io-gncxml-v1.c
io-gncxml-v2.c
io-utils.c
sixtp-dom-generators.c
sixtp-dom-parsers.c
sixtp-stack.c
sixtp-to-dom-parser.c
sixtp-utils.c
sixtp.c
gnc-backend-xml.c
SET (backend_xml_utils_noinst_HEADERS
gnc-backend-xml.h
gnc-xml.h
gnc-address-xml-v2.h
gnc-bill-term-xml-v2.h
gnc-customer-xml-v2.h
gnc-employee-xml-v2.h
gnc-entry-xml-v2.h
gnc-invoice-xml-v2.h
gnc-job-xml-v2.h
gnc-order-xml-v2.h
gnc-owner-xml-v2.h
gnc-tax-table-xml-v2.h
gnc-vendor-xml-v2.h
gnc-xml-helper.h
io-example-account.h
io-gncxml-gen.h
io-gncxml-v2.h
io-gncxml.h
io-utils.h
sixtp-dom-generators.h
sixtp-dom-parsers.h
sixtp-parsers.h
sixtp-stack.h
sixtp-utils.h
sixtp.h
xml-helpers.h
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${libgnc_backend_xml_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET (backend_xml_utils_SOURCES
gnc-account-xml-v2.cpp
gnc-address-xml-v2.cpp
gnc-bill-term-xml-v2.cpp
gnc-book-xml-v2.cpp
gnc-budget-xml-v2.cpp
gnc-commodity-xml-v2.cpp
gnc-customer-xml-v2.cpp
gnc-employee-xml-v2.cpp
gnc-entry-xml-v2.cpp
gnc-freqspec-xml-v2.cpp
gnc-invoice-xml-v2.cpp
gnc-job-xml-v2.cpp
gnc-lot-xml-v2.cpp
gnc-order-xml-v2.cpp
gnc-owner-xml-v2.cpp
gnc-pricedb-xml-v2.cpp
gnc-recurrence-xml-v2.cpp
gnc-schedxaction-xml-v2.cpp
gnc-tax-table-xml-v2.cpp
gnc-transaction-xml-v2.cpp
gnc-vendor-xml-v2.cpp
gnc-xml-helper.cpp
io-example-account.cpp
io-gncxml-gen.cpp
io-gncxml-v1.cpp
io-gncxml-v2.cpp
io-utils.cpp
sixtp-dom-generators.cpp
sixtp-dom-parsers.cpp
sixtp-stack.cpp
sixtp-to-dom-parser.cpp
sixtp-utils.cpp
sixtp.cpp
)
ADD_LIBRARY (gnc-backend-xml
${libgnc_backend_xml_SOURCES}
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${backend_xml_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
ADD_LIBRARY (gnc-backend-xml-utils
${backend_xml_utils_SOURCES}
${backend_xml_utils_noinst_HEADERS}
)
TARGET_LINK_LIBRARIES(gnc-backend-xml-utils gncmod-engine ${LIBXML2_LDFLAGS} ${ZLIB_LDFLAGS})
TARGET_INCLUDE_DIRECTORIES (gnc-backend-xml-utils
PUBLIC ${LIBXML2_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}
PRIVATE ${ZLIB_INCLUDE_DIRS}
)
TARGET_COMPILE_DEFINITIONS (gnc-backend-xml-utils PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.xml\")
INSTALL(TARGETS gnc-backend-xml-utils
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin)
# No headers to install
# ----
SET(libgncmod_backend_xml_SOURCES gnc-backend-xml.cpp)
SET_SOURCE_FILES_PROPERTIES (${libgncmod_backend_xml_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
ADD_LIBRARY(gncmod-backend-xml MODULE ${libgncmod_backend_xml_SOURCES})
TARGET_LINK_LIBRARIES(gncmod-backend-xml gnc-backend-xml-utils gncmod-engine
gnc-core-utils ${LIBXML2_LDFLAGS} ${GLIB2_LDFLAGS} ${ZLIB_LIBRARY})
TARGET_COMPILE_DEFINITIONS (gncmod-backend-xml PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.xml\")
SET(LIB_DIR lib/gnucash)
IF (WIN32)
SET(LIB_DIR bin)
ENDIF(WIN32)
INSTALL(TARGETS gncmod-backend-xml
LIBRARY DESTINATION ${LIB_DIR}
ARCHIVE DESTINATION ${LIB_DIR}
RUNTIME DESTINATION bin)
# ----
# FIXME: Below is a hack to create .libs/libgncmod-backend-xml to silence some complaints
# from guile when compiling. Eventually, fix the guile module loader to not expect items
# to be in .libs. At this time, WIN32 does not use guile-2, so no need for this.
IF (NOT WIN32)
SET(_LINK_TARGET ${CMAKE_CURRENT_BINARY_DIR}/.libs/libgncmod-backend-xml${CMAKE_SHARED_MODULE_SUFFIX})
FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/.libs)
ADD_CUSTOM_COMMAND(
OUTPUT ${_LINK_TARGET}
COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE:gncmod-backend-xml> ${_LINK_TARGET}
DEPENDS gnc-backend-xml-utils
)
ADD_CUSTOM_TARGET(gncmod-backend-xml-link ALL DEPENDS gncmod-backend-xml ${_LINK_TARGET})
ENDIF()

187
src/bin/CMakeLists.txt Normal file
View File

@ -0,0 +1,187 @@
ADD_SUBDIRECTORY(overrides)
# Some settings are platform dependent. Let's define them per platform.
IF (WIN32)
# Windows specific settings go here:
SET (GNUCASH_RESOURCE_FILE gnucash.rc)
ELSE (WIN32)
# All other platforms use these settings:
SET (PLATFORM_FILES gnucash-valgrind)
ENDIF (WIN32)
SET (gnucash_SOURCES
gnucash-bin.c
${GNUCASH_RESOURCE_FILE}
)
ADD_EXECUTABLE (gnucash
${gnucash_SOURCES}
)
TARGET_COMPILE_DEFINITIONS(gnucash PRIVATE -DG_LOG_DOMAIN=\"gnc.bin\")
TARGET_LINK_LIBRARIES (gnucash
gncmod-ledger-core gncmod-report-gnome gnc-gnome gncmod-gnome-utils gncmod-app-utils
gncmod-engine gnc-module gnc-core-utils gnc-qof gncmod-report-system
${GUILE_LDFLAGS} ${GLIB2_LDFLAGS} ${GTK2_LDFLAGS} ${GTK_MAC_LDFLAGS}
)
IF (MAC_INTEGRATION)
TARGET_COMPILE_OPTIONS(gnucash PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
TARGET_LINK_LIBRARIES(gnucash ${OSX_EXTRA_LIBRARIES})
ENDIF(MAC_INTEGRATION)
INSTALL(TARGETS gnucash DESTINATION bin)
# No headers to install.
# Generate the gnucash-env script
SET(SCRIPT_LIST "")
SET(SCRIPT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
IF (GNC_BUILD_AS_INSTALL)
SET(SCRIPT_OUTPUT_DIR ${BINDIR_BUILD})
ENDIF()
FOREACH (script gnucash-env gnucash-make-guids)
SET (GNUCASH_ENV_SCRIPT ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${script})
LIST(APPEND SCRIPT_LIST ${SCRIPT_OUTPUT_DIR}/${script})
SET (GNC_OVERRIDES_DIR ${CMAKE_INSTALL_PREFIX}/libexec/gnucash/overrides)
FILE(WRITE ${GNUCASH_ENV_SCRIPT} "#!/bin/sh\n")
FILE(APPEND ${GNUCASH_ENV_SCRIPT} "PATH=\"${GNC_OVERRIDES_DIR}:\${PATH}\"\n")
FILE(APPEND ${GNUCASH_ENV_SCRIPT} "export PATH\n")
FILE(APPEND ${GNUCASH_ENV_SCRIPT} "\nGUILE_WARN_DEPRECATED=\"no\"\n")
FILE(APPEND ${GNUCASH_ENV_SCRIPT} "export GUILE_WARN_DEPRECATED\n")
FILE(APPEND ${GNUCASH_ENV_SCRIPT} "\nexec \"${script}\" \"\$@\"\n")
FILE(COPY ${GNUCASH_ENV_SCRIPT}
DESTINATION ${SCRIPT_OUTPUT_DIR}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
ENDFOREACH(script)
SET(TOP_SRC_DIR ${CMAKE_SOURCE_DIR})
SET(GNUCASH_BIN_INSTALL_NAME "gnucash")
SET(VALGRIND_OUTDIR ${CMAKE_CURRENT_BINARY_DIR})
IF (GNC_BUILD_AS_INSTALL)
SET(VALGRIND_OUTDIR ${BINDIR_BUILD})
ENDIF()
GNC_CONFIGURE(gnucash-valgrind.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-valgrind)
FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-valgrind
DESTINATION ${VALGRIND_OUTDIR}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
## Create the environment file
FILE(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/environment.in ENV_STRINGS_IN)
SET(ENV_STRINGS_LIST "")
FOREACH(line ${ENV_STRINGS_IN})
STRING(REGEX REPLACE "@-|-@" "@" line2 "${line}")
STRING(REPLACE ";" "\;" line3 "${line2}")
IF(NOT "${line3}" MATCHES "@NOTE")
LIST(APPEND ENV_STRINGS_LIST "${line3}\n")
ENDIF()
ENDFOREACH()
STRING(CONCAT ENV_STRINGS ${ENV_STRINGS_LIST})
STRING(CONFIGURE "${ENV_STRINGS}" ENV_STRINGS_CONF @ONLY)
SET(ENV_FILE_OUT ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/environment)
IF (GNC_BUILD_AS_INSTALL)
SET(BUILD_ENV_FILE_OUT ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/environment.build)
ENDIF()
FILE(WRITE ${ENV_FILE_OUT} "${ENV_STRINGS_CONF}")
FILE(WRITE ${BUILD_ENV_FILE_OUT} "${ENV_STRINGS_CONF}")
SET(XDG_TEXT "
# GnuCash was not installed in the default location.
# XDG_DATA_DIRS will be set so that our documentation
# and gsettings schema are found.\n"
)
IF (NOT(${GNC_DBD_DIR} STREQUAL "${CMAKE_PREFIX_PATH}/lib/dbd"))
FILE(APPEND ${ENV_FILE_OUT} "GNC_DBD_DIR=${GNC_DBD_DIR}")
ENDIF()
IF (NOT(${DATADIR} STREQUAL "/usr/share") AND NOT(${DATADIR} STREQUAL "/usr/local/share"))
FILE(APPEND ${ENV_FILE_OUT} ${XDG_TEXT})
FILE(APPEND ${ENV_FILE_OUT} "XDG_DATA_DIRS=${DATADIR};{XDG_DATA_DIRS}" "${GNC_SYSTEM_XDG_DATA_DIRS}\n")
ENDIF()
IF (GNC_BUILD_AS_INSTALL)
FILE(APPEND ${BUILD_ENV_FILE_OUT} "GNC_DBD_DIR=${LIBDBI_DRIVERS_DIR}/dbd")
FILE(APPEND ${BUILD_ENV_FILE_OUT} ${XDG_TEXT})
FILE(APPEND ${BUILD_ENV_FILE_OUT} "XDG_DATA_DIRS=${DATADIR_BUILD};{XDG_DATA_DIRS};" "${GNC_SYSTEM_XDG_DATA_DIRS}\n")
FILE(COPY ${BUILD_ENV_FILE_OUT}
DESTINATION ${SYSCONFDIR_BUILD}/gnucash
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
FILE(RENAME
${SYSCONFDIR_BUILD}/gnucash/environment.build
${SYSCONFDIR_BUILD}/gnucash/environment
)
ENDIF()
SET(ENVIRONMENT_FILE_DIR ${CMAKE_CURRENT_BINARY_DIR})
FILE(COPY ${ENV_FILE_OUT}
DESTINATION ${ENVIRONMENT_FILE_DIR}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
INSTALL(FILES ${SCRIPT_LIST} ${VALGRIND_OUTDIR}/gnucash-valgrind DESTINATION bin)
INSTALL(FILES ${ENVIRONMENT_FILE_DIR}/environment DESTINATION etc/gnucash)
IF (WIN32)
# Write out a command script for windows
SET(lib_directories boost enchant libsoup mysql pgsql libxslt)
SET(bin_directories mingw gnutls goffice libgsf pcre gnome guile webkit regex aqbanking gwenhywfar libofx opensp
libdbi sqlite3 mysql pgsql enchant libsoup libxslt)
SET(CMD_LINES "")
SET(BUILD_CMD_LINES "")
FOREACH(dir bin lib lib/gnucash)
FILE(TO_NATIVE_PATH ${CMAKE_INSTALL_PREFIX}/${dir} INSTALL_PATH_ITEM)
FILE(TO_NATIVE_PATH ${CMAKE_BINARY_DIR}/${dir} BUILD_PATH_ITEM)
LIST(APPEND CMD_LINES "set PATH=${INSTALL_PATH_ITEM}\;%PATH%\n")
LIST(APPEND BUILD_CMD_LINES "set PATH=${BUILD_PATH_ITEM}\;%PATH%\n")
ENDFOREACH(dir)
FOREACH(dir ${lib_directories})
FILE(TO_NATIVE_PATH ${CMAKE_PREFIX_PATH}/${dir}/lib PATH_ITEM)
LIST(APPEND CMD_LINES "set PATH=${PATH_ITEM}\;%PATH%\n")
ENDFOREACH(dir)
FOREACH(dir ${bin_directories})
FILE(TO_NATIVE_PATH ${CMAKE_PREFIX_PATH}/${dir}/bin PATH_ITEM)
LIST(APPEND CMD_LINES "set PATH=${PATH_ITEM}\;%PATH%\n")
ENDFOREACH(dir)
SET(CMD_FILE ${CMAKE_CURRENT_BINARY_DIR}/gnucash-launcher.cmd)
FILE(WRITE ${CMD_FILE} "@echo off\nsetlocal\n\n")
FOREACH(line ${CMD_LINES})
FILE(APPEND ${CMD_FILE} "${line}")
ENDFOREACH(line)
FILE(APPEND ${CMD_FILE} "\nstart gnucash %*\n")
IF (GNC_BUILD_AS_INSTALL)
SET(BUILD_CMD_FILE ${CMAKE_BINARY_DIR}/bin/gnucash-launcher.cmd)
FILE(WRITE ${BUILD_CMD_FILE} "@echo off\nsetlocal\n\n")
FOREACH(line ${CMD_LINES})
FILE(APPEND ${BUILD_CMD_FILE} "${line}")
ENDFOREACH(line)
FILE(APPEND ${BUILD_CMD_FILE} "\nstart gnucash %*\n")
ENDIF()
INSTALL(PROGRAMS ${CMD_FILE} DESTINATION bin)
ENDIF(WIN32)

View File

@ -0,0 +1,33 @@
SET(GNC_PKGLIB_INSTALLDIR ${PKGLIBDIR})
SET(GNC_SCM_INSTALLDIR ${SCHEME_INSTALLED_SOURCE_DIR})
SET(GNC_LIB_INSTALLDIR ${LIBDIR})
SET(GNC_PYTHON_DIR ${GNUCASH_PATH_DIR})
SET(GUILE ${GUILE_EXECUTABLE})
SET(GNC_SRCDIR ${CMAKE_SOURCE_DIR})
SET(GNC_BUILDDIR ${CMAKE_BINARY_DIR})
CONFIGURE_FILE(gnucash-make-guids.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-make-guids)
GNC_CONFIGURE(gnucash-env.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-env)
GNC_CONFIGURE(guile.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/guile)
GNC_CONFIGURE(gnucash-build-env.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-build-env) # not installed
SET(SCRIPT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
IF (GNC_BUILD_AS_INSTALL)
SET(SCRIPT_OUTPUT_DIR ${LIBDIR_BUILD}exec/gnucash/overrides)
ENDIF()
FOREACH(file gnucash-make-guids gnucash-env guile gnucash-build-env)
FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${file}
DESTINATION ${SCRIPT_OUTPUT_DIR}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
ENDFOREACH(file)
INSTALL(
PROGRAMS
${SCRIPT_OUTPUT_DIR}/gnucash-env
${SCRIPT_OUTPUT_DIR}/gnucash-make-guids
${SCRIPT_OUTPUT_DIR}/guile
DESTINATION libexec/gnucash/overrides
)

View File

@ -0,0 +1,82 @@
ADD_SUBDIRECTORY(gschemas)
ADD_SUBDIRECTORY(gtkbuilder)
ADD_SUBDIRECTORY(ui)
SET(business_gnome_SOURCES
business-options-gnome.c
business-urls.c
business-gnome-utils.c
dialog-billterms.c
dialog-choose-owner.c
dialog-customer.c
dialog-date-close.c
dialog-employee.c
dialog-invoice.c
dialog-job.c
dialog-order.c
dialog-payment.c
dialog-vendor.c
gnc-plugin-business.c
gnc-plugin-page-invoice.c
gnc-plugin-page-owner-tree.c
gncmod-business-gnome.c
search-owner.c
)
SET(business_gnome_noinst_HEADERS
business-options-gnome.h
business-urls.h
business-gnome-utils.h
dialog-billterms.h
dialog-choose-owner.h
dialog-customer.h
dialog-date-close.h
dialog-employee.h
dialog-invoice.h
dialog-job.h
dialog-order.h
dialog-payment.h
dialog-vendor.h
gnc-plugin-business.h
gnc-plugin-page-invoice.h
gnc-plugin-page-owner-tree.h
search-owner.h
)
SET_SOURCE_FILES_PROPERTIES (${business_gnome_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET_SOURCE_FILES_PROPERTIES (business-options-gnome.c PROPERTIES OBJECT_DEPENDS ${SWIG_RUNTIME_H})
ADD_LIBRARY(gncmod-business-gnome
${business_gnome_SOURCES}
${business_gnome_HEADERS}
)
TARGET_LINK_LIBRARIES(gncmod-business-gnome gnc-business-ledger gncmod-gnome-search
gncmod-report-gnome gncmod-gnome-utils gnc-gnome gncmod-engine gnc-qof ${GTK2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS(gncmod-business-gnome PRIVATE -DG_LOG_DOMAIN=\"gnc.business.gnome\")
INSTALL(TARGETS gncmod-business-gnome
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
# No headers to install
# Scheme
SET(gncmod_business_gnome_SCHEME business-gnome.scm)
SET(GUILE_OUTPUT_DIR gnucash)
SET(GUILE_MODULES src/app-utils src/engine src/gnome-utils src/html src/report/report-system src/report/standard-reports)
SET(GUILE_LOAD_DIRS src/app-utils src/engine src/core-utils src/gnc-module src/gnome-utils src/report/business-reports src/report/report-system src/report/standard-reports src/scm)
SET(GUILE_LIBRARY_DIRS src/app-utils src/engine src/core-utils src/gnc-module src/gnome-utils src/report/report-system)
SET(GUILE_DEPENDS scm-business-reports)
GNC_ADD_SCHEME_TARGETS(scm-business-gnome
"${gncmod_business_gnome_SCHEME}"
${GUILE_OUTPUT_DIR}
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
FALSE
)

View File

@ -0,0 +1,4 @@
SET(business_gnome_GSCHEMA org.gnucash.dialogs.business.gschema.xml)
ADD_GSCHEMA_TARGETS(business-gnome-gschema "${business_gnome_GSCHEMA}")

View File

@ -0,0 +1,12 @@
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY .
DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)
ENDIF()
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION share/gnucash
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)

View File

@ -0,0 +1,12 @@
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY .
DESTINATION ${DATADIR_BUILD}/gnucash/ui
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)
ENDIF()
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION share/gnucash
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)

View File

@ -0,0 +1,35 @@
SET (gnc_business_ledger_SOURCES
gncEntryLedger.c
gncEntryLedgerControl.c
gncEntryLedgerDisplay.c
gncEntryLedgerLayout.c
gncEntryLedgerLoad.c
gncEntryLedgerModel.c
)
SET (gnc_business_ledger_noinst_HEADERS
gncEntryLedger.h
gncEntryLedgerP.h
gncEntryLedgerControl.h
gncEntryLedgerLayout.h
gncEntryLedgerModel.h
)
ADD_LIBRARY (gnc-business-ledger
${gnc_business_ledger_SOURCES}
${gnc_business_ledger_noinst_HEADERS}
)
TARGET_LINK_LIBRARIES(gnc-business-ledger gncmod-ledger-core gncmod-register-core gncmod-engine gncmod-gnome-utils
gnc-core-utils ${GTK2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS (gnc-business-ledger PRIVATE -DG_LOG_DOMAIN=\"gnc.business.ledger\")
TARGET_INCLUDE_DIRECTORIES (gnc-business-ledger PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
INSTALL(TARGETS gnc-business-ledger
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin)
# No headers to install

View File

@ -0,0 +1,49 @@
MACRO(ADD_GSCHEMA_TARGETS _TARGET _gschema_INPUTS)
SET(_gschema_OUTPUTS "")
SET(_gschema_VALIDS "")
SET(_gschema_BUILDS "")
# FIXME: I have no idea of I'm using the right options here for intltool-merge for Windows.
SET(INITTOOL_OPTIONS "--no-translations")
IF(WIN32)
SET(INITTOOL_OPTIONS "/tmp")
ENDIF(WIN32)
FOREACH(file ${_gschema_INPUTS})
GNC_CONFIGURE2(${file}.in.in ${file}.in)
STRING(REPLACE ".xml" ".valid" file_no_xml ${file})
SET(_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${file})
SET(_BUILD_FILE ${DATADIR_BUILD}/glib-2.0/schemas/${file})
SET(_VALID_FILE ${CMAKE_CURRENT_BINARY_DIR}/${file_no_xml})
LIST(APPEND _gschema_OUTPUTS ${_OUTPUT_FILE})
LIST(APPEND _gschema_VALIDS ${_VALID_FILE})
IF (GNC_BUILD_AS_INSTALL)
LIST(APPEND _gschema_BUILDS ${_BUILD_FILE})
ENDIF()
ADD_CUSTOM_COMMAND(
OUTPUT ${_OUTPUT_FILE}
COMMAND ${CMAKE_COMMAND} -E env
LC_ALL=C
${PERL_EXECUTABLE} ${INTLTOOL_MERGE} -x -u ${INITTOOL_OPTIONS} ${CMAKE_CURRENT_BINARY_DIR}/${file}.in ${CMAKE_CURRENT_BINARY_DIR}/${file}
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${file}.in
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/${file}.in.in
)
IF (GNC_BUILD_AS_INSTALL)
ADD_CUSTOM_COMMAND(
OUTPUT ${_BUILD_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${_OUTPUT_FILE} ${_BUILD_FILE}
DEPENDS ${_OUTPUT_FILE}
)
ENDIF()
ADD_CUSTOM_COMMAND(
OUTPUT ${_VALID_FILE}
COMMAND ${CMAKE_COMMAND} -E env
${GLIB_COMPILE_SCHEMAS} --strict --dry-run --schema-file=${_OUTPUT_FILE}
COMMAND ${CMAKE_COMMAND} -E touch ${_VALID_FILE}
DEPENDS ${_OUTPUT_FILE}
)
ENDFOREACH(file)
ADD_CUSTOM_TARGET(${_TARGET} DEPENDS "${_gschema_OUTPUTS};${_gschema_VALIDS};${_gschema_BUILDS}")
INSTALL(FILES ${_gschema_OUTPUTS} DESTINATION share/glib-2.0/schemas)
ENDMACRO()

View File

@ -0,0 +1,142 @@
# Copyright (c) 2015, Rob Gowin
MACRO(GNC_ADD_SCHEME_TARGETS _TARGET _SOURCE_FILES _OUTPUT_DIR_IN _GUILE_MODULES _GUILE_LOAD_DIRS _GUILE_LIBRARY_DIRS _GUILE_DEPENDS_IN MAKE_LINKS_IN)
SET(__DEBUG FALSE)
IF (__DEBUG)
MESSAGE("Parameters to COMPILE_SCHEME for target ${_TARGET}")
MESSAGE(" SOURCE_FILES: ${_SOURCE_FILES}")
MESSAGE(" GUILE_MODULES: ${_GUILE_MODULES}")
MESSAGE(" GUILE_LOAD_DIRS: ${_GUILE_LOAD_DIRS}")
MESSAGE(" GUILE_LIBRARY_DIRS: ${_GUILE_LIBRARY_DIRS}")
MESSAGE(" GUILE_DEPENDS_IN: ${_GUILE_DEPENDS_IN}")
ENDIF(__DEBUG)
SET(_CMD "create_symlink")
IF(WIN32)
SET(_CMD "copy")
ENDIF(WIN32)
SET(MAKE_LINKS ${MAKE_LINKS_IN})
SET(_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT_DIR_IN})
IF(GNC_BUILD_AS_INSTALL)
SET(_OUTPUT_DIR ${DATADIR_BUILD}/gnucash/scm/${_OUTPUT_DIR_IN})
ENDIF()
FILE(MAKE_DIRECTORY ${_OUTPUT_DIR})
# For guile 1, we simple link (or copy, for Windows) each source file to the dest directory
IF(HAVE_GUILE1 OR MAKE_LINKS)
SET(_SCHEME_LINKS "")
FOREACH(scheme_file ${_SOURCE_FILES})
SET(_SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${scheme_file})
IF(IS_ABSOLUTE ${scheme_file})
SET(_SOURCE_FILE ${scheme_file})
ENDIF()
GET_FILENAME_COMPONENT(name ${scheme_file} NAME)
SET(_OUTPUT_FILE ${_OUTPUT_DIR}/${name})
IF(NOT EXISTS ${_OUTPUT_FILE})
LIST(APPEND _SCHEME_LINKS ${_OUTPUT_FILE})
ADD_CUSTOM_COMMAND(
OUTPUT ${_OUTPUT_FILE}
COMMAND ${CMAKE_COMMAND} -E ${_CMD} ${_SOURCE_FILE} ${_OUTPUT_FILE}
)
ENDIF()
ENDFOREACH(scheme_file)
IF(HAVE_GUILE1)
ADD_CUSTOM_TARGET(${_TARGET} ALL DEPENDS "${_SCHEME_LINKS}")
ELSE()
ADD_CUSTOM_TARGET(${_TARGET}-links ALL DEPENDS "${_SCHEME_LINKS}")
ENDIF()
ENDIF(HAVE_GUILE1 OR MAKE_LINKS)
IF(HAVE_GUILE2)
# Construct the guile source and compiled load paths
SET(_GUILE_LOAD_PATH "${CMAKE_CURRENT_SOURCE_DIR};${CMAKE_CURRENT_BINARY_DIR};${CMAKE_BINARY_DIR}/src/scm") # to pick up generated build-config.scm
SET(_GUILE_LOAD_COMPILED_PATH "${CMAKE_CURRENT_BINARY_DIR}")
FOREACH (load_item ${_GUILE_LOAD_DIRS})
LIST(APPEND _GUILE_LOAD_PATH ${CMAKE_SOURCE_DIR}/${load_item})
LIST(APPEND _GUILE_LOAD_COMPILED_PATH ${CMAKE_BINARY_DIR}/${load_item})
ENDFOREACH(load_item)
# Construct the LD_LIBRARY_PATH
SET(_GUILE_LD_LIBRARY_PATH ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE})
FOREACH(ld_item ${_GUILE_LIBRARY_DIRS})
LIST(APPEND _GUILE_LD_LIBRARY_PATH ${CMAKE_BINARY_DIR}/${ld_item}/${CMAKE_BUILD_TYPE})
ENDFOREACH(ld_item)
# And then the module path
SET(_GNC_MODULE_PATH "")
FOREACH(module_item ${_GUILE_MODULES})
LIST(APPEND _GNC_MODULE_PATH ${CMAKE_BINARY_DIR}/${module_item}/${CMAKE_BUILD_TYPE})
ENDFOREACH(module_item)
# In CMake lists are text strings where the items are separated by semicolons ("a;b;c;d" for example).
# Replace the semis with colons to construct the path environment variables
STRING(REPLACE ";" ":" _GUILE_LOAD_PATH "${_GUILE_LOAD_PATH}")
STRING(REPLACE ";" ":" _GUILE_LOAD_COMPILED_PATH "${_GUILE_LOAD_COMPILED_PATH}")
STRING(REPLACE ";" ":" _GUILE_MODULES "{_GUILE_MODULES}")
STRING(REPLACE ";" ":" _GUILE_LD_LIBRARY_PATH "${_GUILE_LD_LIBRARY_PATH}")
STRING(REPLACE ";" ":" _GNC_MODULE_PATH "${_GNC_MODULE_PATH}")
IF(GNC_BUILD_AS_INSTALL)
SET(_GUILE_CACHE_DIR ${LIBDIR_BUILD}/gnucash/scm/ccache/2.0)
SET(_GUILE_LOAD_PATH "${CMAKE_CURRENT_SOURCE_DIR}:${DATADIR_BUILD}/gnucash/scm")
SET(_GUILE_LOAD_COMPILED_PATH ${_GUILE_CACHE_DIR})
# SET(_GNC_MODULE_PATH "${LIBDIR_BUILD}/${CMAKE_BUILD_TYPE}:${LIBDIR_BUILD}/gnucash/${CMAKE_BUILD_TYPE}")
SET(_GNC_MODULE_PATH "")
SET(_GUILE_LD_LIBRARY_PATH ${_GNC_MODULE_PATH})
ENDIF()
IF (__DEBUG)
MESSAGE(" ")
MESSAGE(" GUILE_LOAD_PATH: ${_GUILE_LOAD_PATH}")
MESSAGE(" GUILE_LOAD_COMPILED_PATH: ${_GUILE_LOAD_COMPILED_PATH}")
MESSAGE(" GUILE_LD_LIBRARY_PATH: ${_GUILE_LD_LIBRARY_PATH}")
MESSAGE(" GNC_MODULE_PATH: ${_GNC_MODULE_PATH}")
ENDIF(__DEBUG)
SET(_TARGET_FILES "")
FOREACH(source_file ${_SOURCE_FILES})
SET(guile_depends ${_GUILE_DEPENDS_IN})
GET_FILENAME_COMPONENT(basename ${source_file} NAME_WE)
SET(output_file ${basename}.go)
SET(_TMP_OUTPUT_DIR_IN ${_OUTPUT_DIR_IN})
IF (_TMP_OUTPUT_DIR_IN)
SET(output_file ${_OUTPUT_DIR_IN}/${basename}.go)
ENDIF()
IF(GNC_BUILD_AS_INSTALL)
SET(output_file ${_GUILE_CACHE_DIR}/${output_file})
LIST(APPEND _TARGET_FILES ${output_file})
ELSE()
LIST(APPEND _TARGET_FILES ${CMAKE_CURRENT_BINARY_DIR}/${output_file})
ENDIF()
SET(source_file_abs_path ${CMAKE_CURRENT_SOURCE_DIR}/${source_file})
IF (IS_ABSOLUTE ${source_file})
SET(source_file_abs_path ${source_file})
ENDIF()
IF (__DEBUG)
MESSAGE("ADD_CUSTOM_COMMAND: output = ${output_file}")
ENDIF()
ADD_CUSTOM_COMMAND(
OUTPUT ${output_file}
COMMAND ${CMAKE_COMMAND} -E env
GNC_UNINSTALLED=${_GNC_UNINSTALLED}
GNC_BUILDDIR=${CMAKE_BINARY_DIR}
#DYLD_FALLBACK_LIBRARY_PATH=${Boost_LIBRARY_DIRS} # this is hack for OS X
LD_LIBRARY_PATH="${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash:${_GUILE_LD_LIBRARY_PATH}"
DYLD_LIBRARY_PATH="${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash:${_GUILE_LD_LIBRARY_PATH}"
GUILE_LOAD_PATH=${_GUILE_LOAD_PATH}
GUILE_LOAD_COMPILED_PATH=${_GUILE_LOAD_COMPILED_PATH}
#GNC_MODULE_PATH=${_GNC_MODULE_PATH}
GNC_MODULE_PATH="${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash:${GNC_MODULE_PATH}"
${GUILE_EXECUTABLE} -e '\(@@ \(guild\) main\)' -s ${GUILD_EXECUTABLE} compile -o ${output_file} ${source_file_abs_path}
DEPENDS ${guile_depends}
MAIN_DEPENDENCY ${source_file_abs_path}
)
ENDFOREACH(source_file)
IF (__DEBUG)
MESSAGE("TARGET_FILES are ${_TARGET_FILES}")
ENDIF(__DEBUG)
ADD_CUSTOM_TARGET(${_TARGET} ALL DEPENDS ${_TARGET_FILES})
INSTALL(FILES ${_TARGET_FILES} DESTINATION ${SCHEME_INSTALLED_CACHE_DIR}/${_OUTPUT_DIR_IN})
ENDIF(HAVE_GUILE2)
INSTALL(FILES ${_SOURCE_FILES} DESTINATION ${SCHEME_INSTALLED_SOURCE_DIR}/${_OUTPUT_DIR_IN})
ENDMACRO(GNC_ADD_SCHEME_TARGETS)

View File

@ -0,0 +1,42 @@
MACRO (GNC_CONFIGURE _INPUT _OUTPUT)
FILE(READ ${_INPUT} FILE_CONTENTS_IN_IN)
SET(FILE_CONTENTS_IN "${FILE_CONTENTS_IN_IN}")
STRING(REGEX REPLACE "@-|-@" "@" _TMP2 "${FILE_CONTENTS_IN}")
STRING(CONFIGURE "${_TMP2}" FILE_CONTENTS @ONLY)
SET(_OUTPUT_FILE ${_OUTPUT})
IF (NOT IS_ABSOLUTE ${_OUTPUT})
SET(_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT})
ENDIF()
FILE(WRITE ${_OUTPUT_FILE} "${FILE_CONTENTS}")
ENDMACRO()
MACRO (GNC_CONFIGURE2 _INPUT _OUTPUT)
SET(_TMPDIR ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
FILE(READ ${_INPUT} FILE_CONTENTS_IN_IN)
SET(FILE_CONTENTS_IN "${FILE_CONTENTS_IN_IN}")
STRING(REGEX REPLACE "@-|-@" "@" _TMP2 "${FILE_CONTENTS_IN}")
FILE(WRITE ${_TMPDIR}/${_INPUT}.tmp "${_TMP2}")
FILE(WRITE ${_TMPDIR}/${_INPUT}.cmake
"SET(PERL ${PERL_EXECUTABLE})
SET(VERSION ${VERSION})
SET(GNC_HELPDIR ${GNC_HELPDIR})
SET(GETTEXT_PACKAGE ${GETTEXT_PACKAGE})
CONFIGURE_FILE(\${SRC} \${DST} @ONLY)")
SET(_OUTPUT_FILE ${_OUTPUT})
IF (NOT IS_ABSOLUTE ${_OUTPUT})
SET(_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT})
ENDIF()
ADD_CUSTOM_COMMAND(
OUTPUT ${_OUTPUT_FILE}
COMMAND ${CMAKE_COMMAND} -D SRC=${_TMPDIR}/${_INPUT}.tmp
-D DST=${_OUTPUT_FILE}
-P ${_TMPDIR}/${_INPUT}.cmake
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_INPUT}
)
ENDMACRO()

View File

@ -0,0 +1,248 @@
function (pkg_get_variable result pkg variable)
_pkgconfig_invoke("${pkg}" "prefix" "result" "" "--variable=${variable}")
set("${result}"
"${prefix_result}"
PARENT_SCOPE)
endfunction ()
macro(_gnc_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cmake_environment_path _prefix)
_pkgconfig_unset(${_prefix}_FOUND)
_pkgconfig_unset(${_prefix}_VERSION)
_pkgconfig_unset(${_prefix}_PREFIX)
_pkgconfig_unset(${_prefix}_INCLUDEDIR)
_pkgconfig_unset(${_prefix}_LIBDIR)
_pkgconfig_unset(${_prefix}_LIBS)
_pkgconfig_unset(${_prefix}_LIBS_L)
_pkgconfig_unset(${_prefix}_LIBS_PATHS)
_pkgconfig_unset(${_prefix}_LIBS_OTHER)
_pkgconfig_unset(${_prefix}_CFLAGS)
_pkgconfig_unset(${_prefix}_CFLAGS_I)
_pkgconfig_unset(${_prefix}_CFLAGS_OTHER)
_pkgconfig_unset(${_prefix}_STATIC_LIBDIR)
_pkgconfig_unset(${_prefix}_STATIC_LIBS)
_pkgconfig_unset(${_prefix}_STATIC_LIBS_L)
_pkgconfig_unset(${_prefix}_STATIC_LIBS_PATHS)
_pkgconfig_unset(${_prefix}_STATIC_LIBS_OTHER)
_pkgconfig_unset(${_prefix}_STATIC_CFLAGS)
_pkgconfig_unset(${_prefix}_STATIC_CFLAGS_I)
_pkgconfig_unset(${_prefix}_STATIC_CFLAGS_OTHER)
# create a better addressable variable of the modules and calculate its size
set(_pkg_check_modules_list ${ARGN})
list(LENGTH _pkg_check_modules_list _pkg_check_modules_cnt)
if(PKG_CONFIG_EXECUTABLE)
# give out status message telling checked module
if (NOT ${_is_silent})
if (_pkg_check_modules_cnt EQUAL 1)
message(STATUS "Checking for module '${_pkg_check_modules_list}'")
else()
message(STATUS "Checking for modules '${_pkg_check_modules_list}'")
endif()
endif()
set(_pkg_check_modules_packages)
set(_pkg_check_modules_failed)
set(_extra_paths)
if(NOT _no_cmake_path)
_pkgconfig_add_extra_path(_extra_paths CMAKE_PREFIX_PATH)
_pkgconfig_add_extra_path(_extra_paths CMAKE_FRAMEWORK_PATH)
_pkgconfig_add_extra_path(_extra_paths CMAKE_APPBUNDLE_PATH)
endif()
if(NOT _no_cmake_environment_path)
_pkgconfig_add_extra_path(_extra_paths ENV CMAKE_PREFIX_PATH)
_pkgconfig_add_extra_path(_extra_paths ENV CMAKE_FRAMEWORK_PATH)
_pkgconfig_add_extra_path(_extra_paths ENV CMAKE_APPBUNDLE_PATH)
endif()
if(NOT "${_extra_paths}" STREQUAL "")
# Save the PKG_CONFIG_PATH environment variable, and add paths
# from the CMAKE_PREFIX_PATH variables
set(_pkgconfig_path_old $ENV{PKG_CONFIG_PATH})
set(_pkgconfig_path ${_pkgconfig_path_old})
if(NOT "${_pkgconfig_path}" STREQUAL "")
file(TO_CMAKE_PATH "${_pkgconfig_path}" _pkgconfig_path)
endif()
# Create a list of the possible pkgconfig subfolder (depending on
# the system
set(_lib_dirs)
if(NOT DEFINED CMAKE_SYSTEM_NAME
OR (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU)$"
AND NOT CMAKE_CROSSCOMPILING))
if(EXISTS "/etc/debian_version") # is this a debian system ?
if(CMAKE_LIBRARY_ARCHITECTURE)
list(APPEND _lib_dirs "lib/${CMAKE_LIBRARY_ARCHITECTURE}/pkgconfig")
endif()
else()
# not debian, chech the FIND_LIBRARY_USE_LIB64_PATHS property
get_property(uselib64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
if(uselib64)
list(APPEND _lib_dirs "lib64/pkgconfig")
endif()
endif()
endif()
list(APPEND _lib_dirs "lib/pkgconfig")
# Check if directories exist and eventually append them to the
# pkgconfig path list
foreach(_prefix_dir ${_extra_paths})
foreach(_lib_dir ${_lib_dirs})
if(EXISTS "${_prefix_dir}/${_lib_dir}")
list(APPEND _pkgconfig_path "${_prefix_dir}/${_lib_dir}")
list(REMOVE_DUPLICATES _pkgconfig_path)
endif()
endforeach()
endforeach()
# Prepare and set the environment variable
if(NOT "${_pkgconfig_path}" STREQUAL "")
# remove empty values from the list
list(REMOVE_ITEM _pkgconfig_path "")
file(TO_NATIVE_PATH "${_pkgconfig_path}" _pkgconfig_path)
if(UNIX)
string(REPLACE ";" ":" _pkgconfig_path "${_pkgconfig_path}")
string(REPLACE "\\ " " " _pkgconfig_path "${_pkgconfig_path}")
endif()
set(ENV{PKG_CONFIG_PATH} "${_pkgconfig_path}")
endif()
# Unset variables
unset(_lib_dirs)
unset(_pkgconfig_path)
endif()
# iterate through module list and check whether they exist and match the required version
foreach (_pkg_check_modules_pkg ${_pkg_check_modules_list})
set(_pkg_check_modules_exist_query)
# check whether version is given
if (_pkg_check_modules_pkg MATCHES "(.*[^><])(>=|=|<=)(.*)")
set(_pkg_check_modules_pkg_name "${CMAKE_MATCH_1}")
set(_pkg_check_modules_pkg_op "${CMAKE_MATCH_2}")
set(_pkg_check_modules_pkg_ver "${CMAKE_MATCH_3}")
else()
set(_pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}")
set(_pkg_check_modules_pkg_op)
set(_pkg_check_modules_pkg_ver)
endif()
# handle the operands
if (_pkg_check_modules_pkg_op STREQUAL ">=")
list(APPEND _pkg_check_modules_exist_query --atleast-version)
endif()
if (_pkg_check_modules_pkg_op STREQUAL "=")
list(APPEND _pkg_check_modules_exist_query --exact-version)
endif()
if (_pkg_check_modules_pkg_op STREQUAL "<=")
list(APPEND _pkg_check_modules_exist_query --max-version)
endif()
# create the final query which is of the format:
# * --atleast-version <version> <pkg-name>
# * --exact-version <version> <pkg-name>
# * --max-version <version> <pkg-name>
# * --exists <pkg-name>
if (_pkg_check_modules_pkg_op)
list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_ver}")
else()
list(APPEND _pkg_check_modules_exist_query --exists)
endif()
_pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_VERSION)
_pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_PREFIX)
_pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_INCLUDEDIR)
_pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_LIBDIR)
list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_name}")
list(APPEND _pkg_check_modules_packages "${_pkg_check_modules_pkg_name}")
# execute the query
execute_process(
COMMAND ${PKG_CONFIG_EXECUTABLE} ${_pkg_check_modules_exist_query}
RESULT_VARIABLE _pkgconfig_retval)
# evaluate result and tell failures
if (_pkgconfig_retval)
if(NOT ${_is_silent})
message(STATUS " Package '${_pkg_check_modules_pkg}' not found")
endif()
set(_pkg_check_modules_failed 1)
endif()
endforeach()
if(_pkg_check_modules_failed)
# fail when requested
if (${_is_required})
message(FATAL_ERROR "A required package was not found")
endif ()
else()
# when we are here, we checked whether requested modules
# exist. Now, go through them and set variables
_pkgconfig_set(${_prefix}_FOUND 1)
list(LENGTH _pkg_check_modules_packages pkg_count)
# iterate through all modules again and set individual variables
foreach (_pkg_check_modules_pkg ${_pkg_check_modules_packages})
# handle case when there is only one package required
if (pkg_count EQUAL 1)
set(_pkg_check_prefix "${_prefix}")
else()
set(_pkg_check_prefix "${_prefix}_${_pkg_check_modules_pkg}")
endif()
_pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" VERSION "" --modversion )
pkg_get_variable("${_pkg_check_prefix}_PREFIX" ${_pkg_check_modules_pkg} "prefix")
pkg_get_variable("${_pkg_check_prefix}_INCLUDEDIR" ${_pkg_check_modules_pkg} "includedir")
pkg_get_variable("${_pkg_check_prefix}_LIBDIR" ${_pkg_check_modules_pkg} "libdir")
if (NOT ${_is_silent})
message(STATUS " Found ${_pkg_check_modules_pkg}, version ${_pkgconfig_VERSION}")
endif ()
endforeach()
# set variables which are combined for multiple modules
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARIES "(^| )-l" --libs-only-l )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARY_DIRS "(^| )-L" --libs-only-L )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS "" --libs )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS_OTHER "" --libs-only-other )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" INCLUDE_DIRS "(^| )-I" --cflags-only-I )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS "" --cflags )
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS_OTHER "" --cflags-only-other )
endif()
if(NOT "${_extra_paths}" STREQUAL "")
# Restore the environment variable
set(ENV{PKG_CONFIG_PATH} ${_pkgconfig_path})
endif()
unset(_extra_paths)
unset(_pkgconfig_path_old)
else()
if (${_is_required})
message(SEND_ERROR "pkg-config tool not found")
endif ()
endif()
endmacro()
macro(gnc_pkg_check_modules _prefix _module0)
# check cached value
if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION} OR NOT ${_prefix}_FOUND)
_pkgconfig_parse_options (_pkg_modules _pkg_is_required _pkg_is_silent _no_cmake_path _no_cmake_environment_path "${_module0}" ${ARGN})
_gnc_pkg_check_modules_internal("${_pkg_is_required}" "${_pkg_is_silent}" ${_no_cmake_path} ${_no_cmake_environment_path} "${_prefix}" ${_pkg_modules})
_pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION})
endif()
endmacro()

View File

@ -1,77 +1,343 @@
/* Template file for processing by the cmake command CONFIGURE_FILE */
#define PACKAGE "@PROJECT_NAME@"
#define GNUCASH_MAJOR_VERSION @CUTECASH_VERSION_MAJOR@
#define GNUCASH_MICRO_VERSION @CUTECASH_VERSION_MINOR@
#define GNUCASH_MINOR_VERSION @CUTECASH_VERSION_PATCH@
#define GNUCASH_NANO_VERSION @CUTECASH_VERSION_NANO@
#define GNUCASH_RESAVE_VERSION @GNUCASH_RESAVE_VERSION@
#define VERSION "@CUTECASH_VERSION_MAJOR@.@CUTECASH_VERSION_MINOR@.@CUTECASH_VERSION_PATCH@"
/* Definitions for all OS */
#define HAVE_LIBQOF /**/
#define HAVE_TOWUPPER 1
#define QOF_DISABLE_DEPRECATED 1
#define GNC_NO_LOADABLE_MODULES 1
/* Define if building universal (internal helper macro) */
#cmakedefine AC_APPLE_UNIVERSAL_BUILD
/* WIN32 */
#cmakedefine HAVE_HTMLHELPW 1
#cmakedefine OS_WIN32 1
/* Include pthread support for binary relocation? */
#cmakedefine BR_PTHREAD 1
/* Unix or Mingw or Win32 */
/* Enable debug memory */
#cmakedefine01 DEBUG_MEMORY
/* Use binary relocation? */
#cmakedefine ENABLE_BINRELOC
/* always defined to indicate that i18n is enabled */
#cmakedefine ENABLE_NLS 1
/* Don't use deprecated gdk functions */
#cmakedefine GDK_DISABLE_DEPRECATED 1
/* Don't use deprecated gdk-pixbuf functions */
#cmakedefine GDK_PIXBUF_DISABLE_DEPRECATED 1
/* Using GDK Quartz (not X11) */
#cmakedefine GDK_QUARTZ
/* GetText version number */
#define GETTEXT_PACKAGE "@GETTEXT_PACKAGE@"
/* Cocoa/Nexstep/GnuStep framework */
#cmakedefine GNC_PLATFORM_COCOA 1
/* Darwin-based OS */
#cmakedefine GNC_PLATFORM_DARWIN 1
/* Running on OSX, either X11 or Quartz */
#cmakedefine GNC_PLATFORM_OSX 1
/* POSIX-compliant OS */
#cmakedefine GNC_PLATFORM_POSIX 1
/* Microsoft Windows OS */
#cmakedefine GNC_PLATFORM_WINDOWS 1
/* using GNOME */
#cmakedefine GNOME
/* Don't use deprecated gnome functions */
#cmakedefine GNOME_DISABLE_DEPRECATED
/* Most recent stable GnuCash series */
#define GNUCASH_LATEST_STABLE_SERIES "@GNUCASH_LATEST_STABLE_SERIES@"
/* GnuCash Major version number */
#define GNUCASH_MAJOR_VERSION @GNUCASH_MAJOR_VERSION@
/* GnuCash Micro version number */
#define GNUCASH_MICRO_VERSION @GNUCASH_MICRO_VERSION@
/* GnuCash Minor version number */
#define GNUCASH_MINOR_VERSION @GNUCASH_MINOR_VERSION@
/* GnuCash Nano version number */
#define GNUCASH_NANO_VERSION @GNUCASH_NANO_VERSION@
/* GnuCash earliest compatible databaseversion number */
#define GNUCASH_RESAVE_VERSION @GNUCASH_RESAVE_VERSION@
/* Don't use deprecated gtk functions */
#cmakedefine GTK_DISABLE_DEPRECATED 1
/* Don't use deprecated glib functions */
#cmakedefine G_DISABLE_DEPRECATED 1
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
#cmakedefine HAVE_BIND_TEXTDOMAIN_CODESET 1
/* define if the Boost library is available */
#cmakedefine HAVE_BOOST
/* Define to 1 if you have the `chown' function. */
#cmakedefine HAVE_CHOWN 1
/* define if the compiler supports basic C++11 syntax */
#cmakedefine HAVE_CXX11 1
/* Define to 1 if you have the <dbi/dbi.h> header file. */
#cmakedefine HAVE_DBI_DBI_H 1
/* Define to 1 if you have the `dcgettext' function. */
#cmakedefine HAVE_DCGETTEXT 1
/* Define to 1 if you have the <dirent.h> header file. */
#cmakedefine HAVE_DIRENT_H 1
/* Define to 1 if you have the `dlerror' function. */
#cmakedefine HAVE_DLERROR 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#cmakedefine HAVE_DLFCN_H 1
/* Define to 1 if you have the `dlsym' function. */
#cmakedefine HAVE_DLSYM 1
/* Define to 1 if you have the <dl.h> header file. */
#cmakedefine HAVE_DL_H 1
/* Define to 1 if you have the `gethostid' function. */
#cmakedefine HAVE_GETHOSTID 1
/* Define to 1 if you have the `gethostname' function. */
#cmakedefine HAVE_GETHOSTNAME 1
/* Define to 1 if you have the `getppid' function. */
#cmakedefine HAVE_GETPPID 1
/* Define if the GNU gettext() function is already present or preinstalled. */
#cmakedefine HAVE_GETTEXT 1
/* Define to 1 if you have the `gettimeofday' function. */
#cmakedefine HAVE_GETTIMEOFDAY 1
/* Define to 1 if you have the `getuid' function. */
#cmakedefine HAVE_GETUID 1
/* Configure gthread deprecations */
#cmakedefine HAVE_GLIB_2_32 1
/* Configure g_type_init deprecation */
#cmakedefine HAVE_GLIB_2_36 1
/* Configure leading quote around assertions */
#cmakedefine HAVE_GLIB_2_38 1
/* Define to 1 if you have the <glob.h> header file. */
#cmakedefine HAVE_GLOB_H 1
/* Define to 1 if you have the `gmtime_r' function. */
#cmakedefine HAVE_GMTIME_R 1
#cmakedefine HAVE_GUILE 1
/* System has gnome-keyring 0.6 or better */
#cmakedefine HAVE_GNOME_KEYRING 1
/* System has HtmlHelpW */
#cmakedefine HAVE_HTMLHELPW 1
/* Define to 1 if you have the <inttypes.h> header file. */
#cmakedefine HAVE_INTTYPES_H 1
/* Define to 1 if you have the <ktoblzcheck.h> header file. */
#cmakedefine HAVE_KTOBLZCHECK_H 1
/* Define if you have <langinfo.h> and nl_langinfo(D_FMT). */
#cmakedefine HAVE_LANGINFO_D_FMT 1
/* Define if your <locale.h> file defines LC_MESSAGES. */
#cmakedefine HAVE_LC_MESSAGES 1
#cmakedefine HAVE_LIBM 1
/* Define to 1 if you have the `pthread' library (-lpthread). */
#cmakedefine HAVE_LIBPTHREAD 1
/* System has libsecret 0.18 or better */
#cmakedefine HAVE_LIBSECRET 1
/* Define to 1 if you have the <limits.h> header file. */
#cmakedefine HAVE_LIMITS_H 1
/* Define to 1 if you have the `link' function. */
#cmakedefine HAVE_LINK 1
/* Define to 1 if you have the <locale.h> header file. */
#cmakedefine HAVE_LOCALE_H 1
#cmakedefine HAVE_LOCALTIME_R 1
/* Define to 1 if you have the <ltdl.h> header file. */
#cmakedefine HAVE_LTDL_H 1
/* Define to 1 if you have the <mcheck.h> header file. */
#cmakedefine HAVE_MCHECK_H 1
/* Define to 1 if you have the `memcpy' function. */
#cmakedefine HAVE_MEMCPY 1
/* Define to 1 if you have the <memory.h> header file. */
#cmakedefine HAVE_MEMORY_H 1
/* System has an OS X Key chain */
#cmakedefine HAVE_OSX_KEYCHAIN 1
/* Define to 1 if you have the <pow.h> header file. */
#cmakedefine HAVE_POW_H 1
/* Define to 1 if you have the `pthread_mutex_init' function. */
#cmakedefine HAVE_PTHREAD_MUTEX_INIT 1
/* Have PTHREAD_PRIO_INHERIT. */
#cmakedefine HAVE_PTHREAD_PRIO_INHERIT 1
/* Define to 1 if you have the `putenv' function. */
#cmakedefine HAVE_PUTENV 1
/* If available, contains the Python version number currently in use. */
#cmakedefine HAVE_PYTHON 1
/* Define if scanf supports %I64d conversions. */
#cmakedefine HAVE_SCANF_I64D 1
/* Define if scanf supports %lld conversions. */
#cmakedefine HAVE_SCANF_LLD 1
/* Define if scanf supports %qd conversions. */
#cmakedefine HAVE_SCANF_QD 1
/* Define to 1 if you have the `setenv' function. */
#cmakedefine HAVE_SETENV 1
/* Define to 1 if you have the <stdint.h> header file. */
#cmakedefine HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#cmakedefine HAVE_STDLIB_H 1
/* Define to 1 if you have the `stpcpy' function. */
#cmakedefine HAVE_STPCPY 1
/* Define to 1 if you have the `strfmon' function. */
#cmakedefine HAVE_STRFMON 1
/* Define to 1 if you have the <strings.h> header file. */
#cmakedefine HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#cmakedefine HAVE_STRING_H 1
/* Define to 1 if you have the `strptime' function. */
#cmakedefine HAVE_STRPTIME 1
/* Define if you have the tm_gmtoff member of struct tm. */
#cmakedefine HAVE_STRUCT_TM_GMTOFF 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#cmakedefine HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/times.h> header file. */
#cmakedefine HAVE_SYS_TIMES_H 1
/* Define to 1 if you have the <sys/time.h> header file. */
#cmakedefine HAVE_SYS_TIME_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#cmakedefine HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <sys/wait.h> header file. */
#cmakedefine HAVE_SYS_WAIT_H 1
/* Define to 1 if you have the `timegm' function. */
#cmakedefine HAVE_TIMEGM 1
/* Define to 1 if you have the `towupper' function. */
#cmakedefine HAVE_TOWUPPER 1
/* Define to 1 if you have the <unistd.h> header file. */
#cmakedefine HAVE_UNISTD_H 1
/* Define to 1 if you have the <utmp.h> header file. */
#cmakedefine HAVE_UTMP_H 1
/* Define to 1 if you have the <wctype.h> header file. */
#cmakedefine HAVE_WCTYPE_H 1
/* webkit_web_frame_print_full exists */
#cmakedefine HAVE_WEBKIT_WEB_FRAME_PRINT_FULL 1
/* Define to 1 if you have the `webkit_web_view_load_uri' function. */
#cmakedefine HAVE_WEBKIT_WEB_VIEW_LOAD_URI 1
/* Define to 1 if you have the <X11/Xlib.h> header file. */
#cmakedefine HAVE_X11_XLIB_H 1
/* Define to 1 if you have the file `/usr/include/gmock/gmock.h'. */
#cmakedefine HAVE__USR_INCLUDE_GMOCK_GMOCK_H
/* Define to 1 if you have the file `/usr/include/gtest/gtest.h'. */
#cmakedefine HAVE__USR_INCLUDE_GTEST_GTEST_H 1
/* Define to 1 if you have the file `/usr/src/gmock/gmock-all.cc'. */
#cmakedefine HAVE__USR_SRC_GMOCK_GMOCK_ALL_CC 1
/* Define to 1 if you have the file `/usr/src/gmock/src/gmock-all.cc'. */
#cmakedefine HAVE__USR_SRC_GMOCK_SRC_GMOCK_ALL_CC 1
/* Define to 1 if you have the file `/usr/src/gtest/gtest-main.cc'. */
#cmakedefine HAVE__USR_SRC_GTEST_GTEST_MAIN_CC 1
/* Define to 1 if you have the file `/usr/src/gtest/src/gtest-all.cc'. */
#cmakedefine HAVE__USR_SRC_GTEST_SRC_GTEST_ALL_CC 1
/* Enable the experimental locale-specific tax categories */
#cmakedefine LOCALE_SPECIFIC_TAX 1
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#define LT_OBJDIR ".libs/"
/* Name of package */
#define PACKAGE "@PACKAGE@"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@"
/* Define to the full name of this package. */
#define PACKAGE_NAME "@PACKAGE_NAME@"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "@PACKAGE_STRING@"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "@PACKAGE_TARNAME@"
/* Define to the home page for this package. */
#define PACKAGE_URL "@PACKAGE_URL@"
/* Define to the version of this package. */
#define PACKAGE_VERSION "@PACKAGE_VERSION@"
/* Define to necessary symbol if this constant uses a non-standard name on
your system. */
#cmakedefine PTHREAD_CREATE_JOINABLE 1
/* Name of package containing qt3-wizard. */
#define QT3_WIZARD_PACKAGE "aqbanking"
/* We are not using Register2 */
#cmakedefine REGISTER2_ENABLED 1
/* Define to 1 if you have the ANSI C header files. */
#cmakedefine STDC_HEADERS 1
/* We are using EFence */
#cmakedefine USE_EFENCE 1
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
#cmakedefine _ALL_SOURCE 1
@ -93,8 +359,34 @@
#cmakedefine __EXTENSIONS__ 1
#endif
/* Version number of package */
#define VERSION "@VERSION@"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
#cmakedefine WORDS_BIGENDIAN 1
# define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
#cmakedefine WORDS_BIGENDIAN
# endif
#endif
/* Define to 1 if on MINIX. */
#cmakedefine _MINIX 1
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */
#cmakedefine _POSIX_1_SOURCE 1
/* Define to 1 if you need to in order for `stat' and other things to work. */
#cmakedefine _POSIX_SOURCE 1
/* Definitions for all OS */
/* From cutecash */
//#define HAVE_LIBQOF /**/
//#define QOF_DISABLE_DEPRECATED 1
//#define GNC_NO_LOADABLE_MODULES 1

View File

@ -1,25 +1,14 @@
# CMakeLists.txt for src/core-utils
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.core-utils\")
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}/..) # for gnc-ui.h
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}/../libqof/qof) # for gnc-ui.h
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}) # when building swig-core-utils.c
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR}) # for gncla-dir.h, gnc-version.h
# Command to generate the swig-engine.c wrapper file
SET (SWIG_CORE_UTILS_C ${CMAKE_CURRENT_BINARY_DIR}/swig-core-utils.c)
GNC_ADD_SWIG_COMMAND (${SWIG_CORE_UTILS_C} ${CMAKE_CURRENT_SOURCE_DIR}/core-utils.i)
SET (libgnc_core_utils_SOURCES
SET (core_utils_SOURCES
binreloc.c
gnc-prefs.c
gnc-environment.c
gnc-filepath-utils.c
gnc-features.c
gnc-gdate-utils.c
@ -34,44 +23,75 @@ SET (libgnc_core_utils_SOURCES
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${libgnc_core_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET_SOURCE_FILES_PROPERTIES (${core_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
# Command to generate the swig-runtime.h header
ADD_CUSTOM_COMMAND (
OUTPUT ${SWIG_RUNTIME_H}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
COMMAND ${SWIG_EXECUTABLE} -guile -external-runtime ${SWIG_RUNTIME_H}
OUTPUT ${SWIG_RUNTIME_H}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
COMMAND ${SWIG_EXECUTABLE} -guile -external-runtime ${SWIG_RUNTIME_H}
)
# Add dependency on swig-runtime.h
SET_SOURCE_FILES_PROPERTIES (gnc-guile-utils.c PROPERTIES OBJECT_DEPENDS ${SWIG_RUNTIME_H})
# Workaround to create a very simple gncla-dir.h file
FILE (WRITE ${CMAKE_CURRENT_BINARY_DIR}/gncla-dir.h "
#define PREFIX \"${CMAKE_INSTALL_PREFIX}\"
#define DATADIR \"${CMAKE_INSTALL_PREFIX}/share\"
#define SYSCONFDIR \"${CMAKE_INSTALL_PREFIX}/etc\"
#define LIBDIR \"${CMAKE_INSTALL_PREFIX}/lib\"
#define BINDIR \"${CMAKE_INSTALL_PREFIX}/bin\"
#define LOCALE_DATADIRNAME \"share\"
")
SET(prefix ${CMAKE_INSTALL_PREFIX})
SET(datadir ${DATADIR})
SET(bindir ${BINDIR})
SET(libdir ${LIBDIR})
SET(sysconfdir ${SYSCONFDIR})
GNC_CONFIGURE(gncla-dir.h.in gncla-dir.h)
# Workaround to create a simple gnc-version.h file
FILE (WRITE ${CMAKE_CURRENT_BINARY_DIR}/gnc-version.h "
/* Autogenerated. Do not change. */
### Create gnc-version.h ###
SET (GNC_VERSION_H_IN
"/* Autogenerated. Do not change. */
#ifndef GNC_VERSION_H
#define GNC_VERSION_H
#define GNUCASH_SVN 1
#define GNUCASH_BUILD_DATE \"2010-XX-XX\"
#define GNUCASH_SVN_REV \"xxxxxxx\"
#define GNUCASH_SCM \"git\"
#define GNUCASH_BUILD_DATE \"@GNUCASH_BUILD_DATE@\"
#include \"gnc-vcs-info.h\"
#endif
")
SET (libgnc_core_utils_HEADERS
STRING(TIMESTAMP GNUCASH_BUILD_DATE "%Y-%m-%d")
STRING(CONFIGURE ${GNC_VERSION_H_IN} GNC_VERSION_H_CONTENT)
FILE (WRITE ${CMAKE_CURRENT_BINARY_DIR}/gnc-version.h ${GNC_VERSION_H_CONTENT})
### Create gnc-vcs-info.h
# The meta-cmake gymnastics here come from https://cmake.org/pipermail/cmake/2010-July/038015.html
FIND_PACKAGE(Git)
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h.in
"/* Autogenerated. Do not change. */\n#define GNUCASH_SCM_REV \"@GNUCASH_SCM_REV@\"\n"
)
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/version.cmake
"EXECUTE_PROCESS(
COMMAND ${GIT_EXECUTABLE} --git-dir ${CMAKE_SOURCE_DIR}/.git log -1 --pretty=format:%h HEAD
OUTPUT_VARIABLE GNUCASH_SCM_REV
OUTPUT_STRIP_TRAILING_WHITESPACE
)
CONFIGURE_FILE(\${SRC} \${DST} @ONLY)
")
ADD_CUSTOM_TARGET(gnc-vcs-info ALL
${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h.in
-D DST=${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h
-P ${CMAKE_CURRENT_BINARY_DIR}/version.cmake
)
### Compile library
SET(core_utils_noinst_HEADERS
binreloc.h
gnc-prefs.h
gnc-prefs-p.h
gnc-environment.h
gnc-features.h
gnc-filepath-utils.h
gnc-gdate-utils.h
@ -84,7 +104,52 @@ SET (libgnc_core_utils_HEADERS
gnc-uri-utils.h
)
ADD_LIBRARY (core-utils
${libgnc_core_utils_SOURCES}
${libgnc_core_utils_HEADERS}
)
ADD_LIBRARY (gnc-core-utils
${core_utils_SOURCES}
${core_utils_noinst_HEADERS}
)
ADD_DEPENDENCIES(gnc-core-utils gnc-vcs-info)
TARGET_LINK_LIBRARIES(gnc-core-utils gnc-qof ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS} ${GOBJECT_LDFLAGS} ${GTK_MAC_LDFLAGS})
TARGET_COMPILE_DEFINITIONS(gnc-core-utils
PRIVATE -DG_LOG_DOMAIN=\"gnc.core-utils\" ${GTK_MAC_CFLAGS_OTHER})
TARGET_INCLUDE_DIRECTORIES(gnc-core-utils PUBLIC
${CMAKE_CURRENT_BINARY_DIR} # for headers generated in core-utils build directory
${CMAKE_CURRENT_SOURCE_DIR}
${GUILE_INCLUDE_DIRS}
${GTK_MAC_INCLUDE_DIRS}
)
IF (MAC_INTEGRATION)
TARGET_COMPILE_OPTIONS(gnc-core-utils PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
TARGET_LINK_LIBRARIES(gnc-core-utils ${OSX_EXTRA_LIBRARIES})
ENDIF(MAC_INTEGRATION)
INSTALL(TARGETS gnc-core-utils
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin)
# No headers to install
# Scheme
SET (core_utils_SCHEME core-utils.scm)
SET(GUILE_OUTPUT_DIR gnucash)
SET(GUILE_MODULES "")
SET(GUILE_LOAD_DIRS src/core-utils)
SET(GUILE_LIBRARY_DIRS src/core-utils)
SET(GUILE_DEPENDS gnc-core-utils)
GNC_ADD_SCHEME_TARGETS(scm-core-utils
"${core_utils_SCHEME}"
${GUILE_OUTPUT_DIR}
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
FALSE
)

View File

@ -1,21 +1,20 @@
# CMakeLists.txt for src/engine
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.engine\")
SET(engine_noinst_HEADERS
AccountP.h
ScrubP.h
SplitP.h
SX-book.h
SX-ttinfo.h
TransactionP.h
gnc-hooks-scm.h
gnc-lot.h
gnc-lot-p.h
gnc-pricedb-p.h
policy-p.h
)
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for pow.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof) # for qof.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module) # for gnc-module.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils) # for gnc-glib-utils.h
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}) # for <Account.h>
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR}) # for iso-4217-currencies.c
SET (libgncmod_engine_HEADERS
SET (engine_HEADERS
Account.h
FreqSpec.h
Recurrence.h
@ -25,6 +24,7 @@ SET (libgncmod_engine_HEADERS
Query.h
Scrub.h
Scrub2.h
ScrubBusiness.h
Scrub3.h
Split.h
TransLog.h
@ -32,6 +32,7 @@ SET (libgncmod_engine_HEADERS
cap-gains.h
cashobjects.h
engine-helpers.h
engine-helpers-guile.h
glib-helpers.h
gnc-budget.h
gnc-commodity.h
@ -54,6 +55,7 @@ SET (libgncmod_engine_HEADERS
gncEmployeeP.h
gncEntry.h
gncEntryP.h
gncIDSearch.h
gncInvoice.h
gncInvoiceP.h
gncJob.h
@ -70,7 +72,7 @@ SET (libgncmod_engine_HEADERS
# Command to generate the swig-engine.c wrapper file
SET (SWIG_ENGINE_C ${CMAKE_CURRENT_BINARY_DIR}/swig-engine.c)
GNC_ADD_SWIG_COMMAND (${SWIG_ENGINE_C} ${CMAKE_CURRENT_SOURCE_DIR}/engine.i ${libgncmod_engine_HEADERS})
GNC_ADD_SWIG_COMMAND (${SWIG_ENGINE_C} ${CMAKE_CURRENT_SOURCE_DIR}/engine.i ${engine_HEADERS})
# Command to generate the iso-4217-currencies.c file
SET (ISO_4217_C ${CMAKE_CURRENT_BINARY_DIR}/iso-4217-currencies.c)
@ -78,15 +80,18 @@ ADD_CUSTOM_COMMAND (
OUTPUT ${ISO_4217_C}
DEPENDS iso-4217-currencies.xml iso-currencies-to-c.xsl
COMMAND
${XSLTPROC} -o ${ISO_4217_C} "${CMAKE_CURRENT_SOURCE_DIR}/iso-currencies-to-c.xsl" "${CMAKE_CURRENT_SOURCE_DIR}/iso-4217-currencies.xml"
${LIBXSLT_XSLTPROC_EXECUTABLE} -o ${ISO_4217_C} "${CMAKE_CURRENT_SOURCE_DIR}/iso-currencies-to-c.xsl" "${CMAKE_CURRENT_SOURCE_DIR}/iso-4217-currencies.xml"
)
# Add dependency on iso-4217-currencies.c
SET_SOURCE_FILES_PROPERTIES (gnc-commodity.c PROPERTIES OBJECT_DEPENDS ${ISO_4217_C})
SET_SOURCE_FILES_PROPERTIES (gnc-commodity.c PROPERTIES OBJECT_DEPENDS "${ISO_4217_C};${CONFIG_H}")
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${libgncmod_engine_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
# Add dependency on swig-runtime.h
SET_SOURCE_FILES_PROPERTIES (gnc-hooks.c engine-helpers.c kvp-scm.c glib-helpers.c PROPERTIES OBJECT_DEPENDS ${SWIG_RUNTIME_H})
SET_SOURCE_FILES_PROPERTIES (gnc-hooks.c engine-helpers.c kvp-scm.cpp glib-helpers.c PROPERTIES OBJECT_DEPENDS "${CONFIG_H};${SWIG_RUNTIME_H}")
SET (libgncmod_engine_SOURCES
SET (engine_SOURCES
Account.c
Recurrence.c
Query.c
@ -96,6 +101,7 @@ SET (libgncmod_engine_SOURCES
Scrub.c
Scrub2.c
Scrub3.c
ScrubBusiness.c
Split.c
TransLog.c
Transaction.c
@ -118,9 +124,11 @@ SET (libgncmod_engine_SOURCES
gncAddress.c
gncBillTerm.c
gncBusGuile.c
gncBusiness.c
gncCustomer.c
gncEmployee.c
gncEntry.c
gncIDSearch.c
gncInvoice.c
gncJob.c
gncOrder.c
@ -129,10 +137,74 @@ SET (libgncmod_engine_SOURCES
gncVendor.c
)
# Add dependency on config.h
#SET_SOURCE_FILES_PROPERTIES (${libgncmod_engine_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
ADD_LIBRARY (engine
${libgncmod_engine_SOURCES}
${libgncmod_engine_HEADERS}
)
ADD_LIBRARY (gncmod-engine
${engine_SOURCES}
${engine_HEADERS}
${engine_noinst_HEADERS}
)
TARGET_LINK_LIBRARIES(gncmod-engine gnc-core-utils gnc-module gnc-qof ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS (gncmod-engine PRIVATE -DG_LOG_DOMAIN=\"gnc.engine\")
TARGET_INCLUDE_DIRECTORIES (gncmod-engine
PRIVATE ${CMAKE_CURRENT_BINARY_DIR} # for iso-4217-currencies.c
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
)
INSTALL(TARGETS gncmod-engine
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
INSTALL(FILES ${engine_HEADERS} DESTINATION include/gnucash)
# Scheme
SET (engine_SCHEME_0
engine.scm
business-core.scm
)
SET (engine_SCHEME_1
commodity-table.scm
engine-interface.scm
engine-utilities.scm
gnc-numeric.scm
)
SET(BACKEND_DEPENDS gncmod-backend-xml-link)
IF(WITH_SQL)
LIST(APPEND BACKEND_DEPENDS gncmod-backend-dbi-link)
ENDIF(WITH_SQL)
SET(GUILE_MODULES "")
SET(GUILE_LOAD_DIRS src/gnc-module)
SET(GUILE_LIBRARY_DIRS src/gnc-module)
SET(GUILE_DEPENDS ${BACKEND_DEPENDS} gnc-module gncmod-engine scm-gnc-module)
GNC_ADD_SCHEME_TARGETS(scm-engine-0
"${engine_SCHEME_0}"
gnucash
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
FALSE
)
GNC_ADD_SCHEME_TARGETS(scm-engine-1
"${engine_SCHEME_1}"
""
""
""
""
"scm-engine-0;${GUILE_DEPENDS}"
FALSE
)
ADD_CUSTOM_TARGET(scm-engine ALL DEPENDS scm-engine-1 scm-engine-0)

View File

@ -1,33 +1,59 @@
# CMakeLists.txt for src/gnc-module
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.module\")
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}) # when building swig-gnc-module.c
# Command to generate the swig-engine.c wrapper file
SET (SWIG_GNC_MODULE_C ${CMAKE_CURRENT_BINARY_DIR}/swig-gnc-module.c)
GNC_ADD_SWIG_COMMAND (${SWIG_GNC_MODULE_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnc-module.i)
SET (libgnc_module_SOURCES
SET (gnc_module_SOURCES
gnc-module.c
${SWIG_GNC_MODULE_C}
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${libgnc_module_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET_SOURCE_FILES_PROPERTIES (${gnc_module_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET (libgnc_module_HEADERS
SET (gnc_module_HEADERS
gnc-module.h
gnc-module-api.h
)
ADD_LIBRARY (gnc-module
${libgnc_module_SOURCES}
${libgnc_module_HEADERS}
)
${gnc_module_SOURCES}
${gnc_module_HEADERS}
)
TARGET_LINK_LIBRARIES(gnc-module gnc-qof ${GUILE_LDFLAGS} ${GMODULE_LDFLAGS} ${GLIB2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS (gnc-module PRIVATE -DG_LOG_DOMAIN=\"gnc.module\")
TARGET_INCLUDE_DIRECTORIES (gnc-module
PRIVATE ${GUILE_INCLUDE_DIRS}
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
)
INSTALL(TARGETS gnc-module
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin)
INSTALL(FILES ${gnc_module_HEADERS} DESTINATION include/gnucash)
# --- Compile Scheme file(s) ---
SET (gnc_module_SCHEME gnc-module.scm)
SET(GUILE_OUTPUT_DIR gnucash)
SET(GUILE_MODULES "")
SET(GUILE_LOAD_DIRS "")
SET(GUILE_LIBRARY_DIRS "")
SET(GUILE_DEPENDS gnc-module)
GNC_ADD_SCHEME_TARGETS(scm-gnc-module
"${gnc_module_SCHEME}"
${GUILE_OUTPUT_DIR}
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
FALSE
)

View File

@ -0,0 +1,60 @@
SET (gnome_search_SOURCES
gncmod-gnome-search.c
gnc-general-search.c
dialog-search.c
search-account.c
search-boolean.c
search-core-type.c
search-core-utils.c
search-date.c
search-double.c
search-int64.c
search-numeric.c
search-reconciled.c
search-string.c
)
SET (gnome_search_HEADERS
dialog-search.h
gnc-general-search.h
)
SET (gnome_search_noinst_HEADERS
search-account.h
search-boolean.h
search-core-type.h
search-core-utils.h
search-date.h
search-double.h
search-int64.h
search-numeric.h
search-reconciled.h
search-string.h
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${gnome_search_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
ADD_LIBRARY (gncmod-gnome-search
${gnome_search_SOURCES}
${gnome_search_HEADERS}
${gnome_search_noinst_HEADERS}
)
TARGET_LINK_LIBRARIES(gncmod-gnome-search gnc-qof gncmod-gnome-utils ${GTK2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS(gncmod-gnome-search PRIVATE -DG_LOG_DOMAIN=\"gnc.gui.search\")
TARGET_INCLUDE_DIRECTORIES(gncmod-gnome-search PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
INSTALL(TARGETS gncmod-gnome-search
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
INSTALL(FILES ${gnome_search_HEADERS} DESTINATION include/gnucash)
SET(gnome_search_GLADE dialog-search.glade)
INSTALL(FILES ${gnome_search_GLADE} DESTINATION share/gnucash/gtkbuilder)

View File

@ -0,0 +1,264 @@
# Note that src/gnome-utils CANNOT depend on src/gnome!
ADD_SUBDIRECTORY(gschemas)
ADD_SUBDIRECTORY(gtkbuilder)
ADD_SUBDIRECTORY(ui)
SET (SWIG_GNOME_UTILS_C ${CMAKE_CURRENT_BINARY_DIR}/swig-gnome-utils.c)
GNC_ADD_SWIG_COMMAND (${SWIG_GNOME_UTILS_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnome-utils.i)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/gschemas/org.gnucash.warnings.gschema.xml.in.in
${CMAKE_CURRENT_BINARY_DIR}/gschemas/org.gnucash.warnings.gschema.xml.in)
SET (WARNINGS_SCHEMA gschemas/org.gnucash.warnings.gschema.xml.in)
SET (GNC_WARNINGS_C ${CMAKE_CURRENT_BINARY_DIR}/gnc-warnings.c)
SET (GNC_WARNINGS_H ${CMAKE_CURRENT_BINARY_DIR}/gnc-warnings.h)
ADD_CUSTOM_COMMAND(
OUTPUT ${GNC_WARNINGS_C}
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${WARNINGS_SCHEMA} make-gnc-warnings-c.xsl
COMMAND
${LIBXSLT_XSLTPROC_EXECUTABLE} -o ${GNC_WARNINGS_C} ${CMAKE_CURRENT_SOURCE_DIR}/make-gnc-warnings-c.xsl ${CMAKE_CURRENT_BINARY_DIR}/${WARNINGS_SCHEMA}
)
ADD_CUSTOM_COMMAND(
OUTPUT ${GNC_WARNINGS_H}
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${WARNINGS_SCHEMA} make-gnc-warnings-h.xsl
COMMAND
${LIBXSLT_XSLTPROC_EXECUTABLE} -o ${GNC_WARNINGS_H} ${CMAKE_CURRENT_SOURCE_DIR}/make-gnc-warnings-h.xsl ${CMAKE_CURRENT_BINARY_DIR}/${WARNINGS_SCHEMA}
)
SET (gnome_utils_SOURCES
account-quickfill.c
assistant-xml-encoding.c
cursors.c
dialog-account.c
dialog-book-close.c
dialog-commodity.c
dialog-dup-trans.c
dialog-file-access.c
dialog-object-references.c
dialog-options.c
dialog-preferences.c
dialog-query-view.c
dialog-reset-warnings.c
dialog-tax-table.c
dialog-totd.c
dialog-transfer.c
dialog-userpass.c
dialog-utils.c
gnc-account-sel.c
gnc-amount-edit.c
gnc-autosave.c
gnc-cell-renderer-date.c
gnc-cell-renderer-popup.c
gnc-cell-renderer-popup-entry.c
gnc-combott.c
gnc-commodity-edit.c
gnc-currency-edit.c
gnc-date-delta.c
gnc-date-edit.c
gnc-date-format.c
gnc-dense-cal.c
gnc-dense-cal-model.c
gnc-dense-cal-store.c
gnc-embedded-window.c
gnc-file.c
gnc-frequency.c
gnc-recurrence.c
gnc-general-select.c
gnc-gnome-utils.c
gnc-gobject-utils.c
gnc-gtk-utils.c
gnc-gui-query.c
gnc-icons.c
gnc-keyring.c
gnc-main-window.c
gnc-menu-extensions.c
gnc-plugin-file-history.c
gnc-plugin-manager.c
gnc-plugin-menu-additions.c
gnc-plugin-page.c
gnc-plugin.c
gnc-period-select.c
gnc-query-view.c
gnc-splash.c
gnc-sx-instance-dense-cal-adapter.c
gnc-sx-list-tree-model-adapter.c
gnc-tree-control-split-reg.c
gnc-tree-model.c
gnc-tree-model-account-types.c
gnc-tree-model-account.c
gnc-tree-model-budget.c
gnc-tree-model-owner.c
gnc-tree-model-commodity.c
gnc-tree-model-price.c
gnc-tree-model-split-reg.c
gnc-tree-util-split-reg.c
gnc-tree-view-account.c
gnc-tree-view-commodity.c
gnc-tree-view-owner.c
gnc-tree-view-price.c
gnc-tree-view-split-reg.c
gnc-tree-view-sx-list.c
gnc-tree-view.c
${GNC_WARNINGS_C}
gnc-window.c
gncmod-gnome-utils.c
misc-gnome-utils.c
tree-view-utils.c
search-param.c
print-session.c
${SWIG_GNOME_UTILS_C}
swig-gnome-utils.c
window-main-summarybar.c
)
SET(gnome_utils_noinst_HEADERS
dialog-tax-table.h
gnc-autosave.h
gnc-gobject-utils.h
gnc-gtk-utils.h
search-param.h
${GNC_WARNINGS_H}
)
SET (gnome_utils_HEADERS
account-quickfill.h
assistant-xml-encoding.h
dialog-account.h
dialog-book-close.h
dialog-commodity.h
dialog-dup-trans.h
dialog-file-access.h
dialog-preferences.h
dialog-object-references.h
dialog-options.h
dialog-query-view.h
dialog-reset-warnings.h
dialog-totd.h
dialog-transfer.h
dialog-utils.h
gnc-account-sel.h
gnc-amount-edit.h
gnc-cell-renderer-date.h
gnc-cell-renderer-popup.h
gnc-cell-renderer-popup-entry.h
gnc-combott.h
gnc-commodity-edit.h
gnc-currency-edit.h
gnc-date-delta.h
gnc-date-edit.h
gnc-date-format.h
gnc-dense-cal.h
gnc-dense-cal-model.h
gnc-dense-cal-store.h
gnc-embedded-window.h
gnc-file.h
gnc-frequency.h
gnc-recurrence.h
gnc-general-select.h
gnc-gnome-utils.h
gnc-gui-query.h
gnc-icons.h
gnc-keyring.h
gnc-main-window.h
gnc-menu-extensions.h
gnc-plugin-file-history.h
gnc-plugin-manager.h
gnc-plugin-menu-additions.h
gnc-plugin-page.h
gnc-plugin.h
gnc-period-select.h
gnc-query-view.h
gnc-splash.h
gnc-sx-instance-dense-cal-adapter.h
gnc-sx-list-tree-model-adapter.h
gnc-tree-control-split-reg.h
gnc-tree-model.h
gnc-tree-model-account-types.h
gnc-tree-model-account.h
gnc-tree-model-budget.h
gnc-tree-model-owner.h
gnc-tree-model-commodity.h
gnc-tree-model-price.h
gnc-tree-model-split-reg.h
gnc-tree-util-split-reg.h
gnc-tree-view-account.h
gnc-tree-view-commodity.h
gnc-tree-view-owner.h
gnc-tree-view-price.h
gnc-tree-view-split-reg.h
gnc-tree-view-sx-list.h
gnc-tree-view.h
gnc-ui.h
gnc-window.h
misc-gnome-utils.h
tree-view-utils.h
print-session.h
window-main-summarybar.h
)
ADD_LIBRARY (gncmod-gnome-utils
${gnome_utils_SOURCES}
${gnome_utils_HEADERS}
${gnome_utils_noinst_HEADERS}
)
TARGET_LINK_LIBRARIES(gncmod-gnome-utils gncmod-app-utils gncmod-engine gnc-backend-xml-utils
${GTK2_LDFLAGS} ${GTK_MAC_LDFLAGS})
TARGET_COMPILE_DEFINITIONS(gncmod-gnome-utils PUBLIC ${GTK_MAC_CFLAGS_OTHER}
PRIVATE -DG_LOG_DOMAIN=\"gnc.gui\")
IF (MAC_INTEGRATION)
TARGET_COMPILE_OPTIONS(gncmod-gnome-utils PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
TARGET_LINK_LIBRARIES(gncmod-gnome-utils ${OSX_EXTRA_LIBRARIES})
ENDIF(MAC_INTEGRATION)
TARGET_INCLUDE_DIRECTORIES(gncmod-gnome-utils
PUBLIC
${GTK2_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}
PRIVATE
${GTK_MAC_INCLUDE_DIRS}
${CMAKE_CURRENT_BINARY_DIR}
)
INSTALL(TARGETS gncmod-gnome-utils
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
INSTALL(FILES ${gnome_utils_HEADERS} DESTINATION include/gnucash)
# Scheme
SET(GUILE_MODULES "")
SET(GUILE_LOAD_DIRS src/core-utils src/gnc-module src/scm)
SET(GUILE_LIBRARY_DIRS src/core-utils src/gnc-module)
SET(GUILE_DEPENDS gncmod-gnome-utils scm-core-utils scm-gnc-module scm-scm)
GNC_ADD_SCHEME_TARGETS(scm-gnome-utils-1
gnome-utils.scm
gnucash
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
FALSE
)
GNC_ADD_SCHEME_TARGETS(scm-gnome-utils-2
gnc-menu-extensions.scm
""
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
FALSE
)
ADD_CUSTOM_TARGET(scm-gnome-utils ALL DEPENDS scm-gnome-utils-2 scm-gnome-utils-1)

View File

@ -0,0 +1,4 @@
SET(gnome_utils_GSCHEMA org.gnucash.history.gschema.xml org.gnucash.warnings.gschema.xml)
ADD_GSCHEMA_TARGETS(gnome-utils-gschema "${gnome_utils_GSCHEMA}")

View File

@ -0,0 +1,11 @@
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY .
DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)
ENDIF()
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION share/gnucash
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)

View File

@ -0,0 +1,12 @@
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY .
DESTINATION ${DATADIR_BUILD}/gnucash/ui
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)
ENDIF()
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION share/gnucash
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)

149
src/gnome/CMakeLists.txt Normal file
View File

@ -0,0 +1,149 @@
ADD_SUBDIRECTORY(gschemas)
ADD_SUBDIRECTORY(gtkbuilder)
ADD_SUBDIRECTORY(ui)
SET (gnc_gnome_noinst_HEADERS
assistant-acct-period.h
assistant-hierarchy.h
assistant-loan.h
assistant-stock-split.h
dialog-fincalc.h
dialog-find-transactions.h
dialog-find-transactions2.h
dialog-lot-viewer.h
dialog-new-user.h
dialog-print-check.h
dialog-print-check2.h
dialog-progress.h
dialog-sx-editor.h
dialog-sx-editor2.h
dialog-sx-from-trans.h
dialog-sx-since-last-run.h
gnc-budget-view.h
gnc-plugin-account-tree.h
gnc-plugin-basic-commands.h
gnc-plugin-budget.h
gnc-plugin-register.h
gnc-plugin-register2.h
gnc-plugin-page-account-tree.h
gnc-plugin-page-budget.h
gnc-plugin-page-sx-list.h
gnc-plugin-page-register.h
gnc-plugin-page-register2.h
gnc-split-reg.h
gnc-split-reg2.h
reconcile-view.h
top-level.h
window-reconcile.h
window-reconcile2.h
window-autoclear.h
)
SET (SWIG_GNOME_C ${CMAKE_CURRENT_BINARY_DIR}/swig-gnome.c)
GNC_ADD_SWIG_COMMAND (${SWIG_GNOME_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnome.i ${gnc_gnome_HEADERS})
SET (gnc_gnome_SOURCES
${SWIG_GNOME_C}
assistant-acct-period.c
assistant-hierarchy.c
assistant-loan.c
assistant-stock-split.c
dialog-commodities.c
dialog-fincalc.c
dialog-find-transactions.c
dialog-find-transactions2.c
dialog-lot-viewer.c
dialog-new-user.c
dialog-price-editor.c
dialog-price-edit-db.c
dialog-print-check.c
dialog-print-check2.c
dialog-progress.c
dialog-sx-editor.c
dialog-sx-editor2.c
dialog-sx-from-trans.c
dialog-sx-since-last-run.c
dialog-tax-info.c
gnc-budget-view.c
gnc-plugin-account-tree.c
gnc-plugin-basic-commands.c
gnc-plugin-budget.c
gnc-plugin-register.c
gnc-plugin-register2.c
gnc-plugin-page-account-tree.c
gnc-plugin-page-budget.c
gnc-plugin-page-sx-list.c
gnc-plugin-page-register.c
gnc-plugin-page-register2.c
gnc-split-reg.c
gnc-split-reg2.c
reconcile-view.c
top-level.c
window-reconcile.c
window-reconcile2.c
window-autoclear.c
)
IF (WIN32)
SET (gnc_gnome_SOURCES ${gnc_gnome_SOURCES} ${CMAKE_SOURCE_DIR}/lib/libc/strfmon.c)
ENDIF(WIN32)
ADD_LIBRARY (gnc-gnome ${gnc_gnome_SOURCES} ${gnc_gnome_noinst_HEADERS})
TARGET_LINK_LIBRARIES(gnc-gnome gncmod-gnome-search gncmod-ledger-core gncmod-report-gnome gncmod-report-system
gncmod-register-gnome gncmod-register-core gncmod-engine ${GTK2_LDFLAGS} ${GTK_MAC_LDFLAGS})
TARGET_COMPILE_DEFINITIONS (gnc-gnome PRIVATE -DG_LOG_DOMAIN=\"gnc.gui\" ${GTK_MAC_CFLAGS_OTHER})
TARGET_INCLUDE_DIRECTORIES(gnc-gnome
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
PRIVATE ${CMAKE_SOURCE_DIR}/src/app-utils/calculation ${GTK_MAC_INCLUDE_DIRS}
)
IF (MAC_INTEGRATION)
TARGET_COMPILE_OPTIONS(gnc-gnome PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
TARGET_LINK_LIBRARIES(gnc-gnome ${OSX_EXTRA_LIBRARIES})
ENDIF(MAC_INTEGRATION)
INSTALL(TARGETS gnc-gnome
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin)
# No headers to install
# FIXME: where does LC_ALL=C come from?
ADD_CUSTOM_COMMAND(
OUTPUT gnucash.appdata.xml
COMMAND ${CMAKE_COMMAND} -E env
LC_ALL=C
${PERL_EXECUTABLE} ${INTLTOOL_MERGE} -x -u -c ${CMAKE_SOURCE_DIR}/po/.intltool-merge-cache ${CMAKE_SOURCE_DIR}/po
${CMAKE_CURRENT_SOURCE_DIR}/gnucash.appdata.xml.in gnucash.appdata.xml
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/gnucash.appdata.xml.in
)
ADD_CUSTOM_TARGET(gnucash-appdata ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/gnucash.appdata.xml)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.appdata.xml DESTINATION share/appdata)
#=======
CONFIGURE_FILE(gnucash.desktop.in.in gnucash.desktop.in)
ADD_CUSTOM_COMMAND(
OUTPUT gnucash.desktop
COMMAND ${CMAKE_COMMAND} -E env
LC_ALL=C
${PERL_EXECUTABLE} ${INTLTOOL_MERGE} -d -u -c ${CMAKE_SOURCE_DIR}/po/.intltool-merge-cache ${CMAKE_SOURCE_DIR}/po
gnucash.desktop.in gnucash.desktop
MAIN_DEPENDENCY gnucash.desktop.in
)
ADD_CUSTOM_TARGET(gnucash-desktop ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/gnucash.desktop)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.desktop DESTINATION share/applications)

View File

@ -0,0 +1,19 @@
SET(gnome_GSCHEMA
org.gnucash.dialogs.gschema.xml
org.gnucash.dialogs.commodities.gschema.xml
org.gnucash.dialogs.checkprinting.gschema.xml
org.gnucash.dialogs.reconcile.gschema.xml
org.gnucash.dialogs.sxs.gschema.xml
org.gnucash.dialogs.totd.gschema.xml
org.gnucash.gschema.xml
org.gnucash.window.pages.account.tree.gschema.xml
org.gnucash.window.pages.gschema.xml
)
# If you edit one of the above files, you need to rerun cmake.
# When we can use CONFIGURE_FILE() instead of GNC_CONFIGURE()
# this issue will go away.
ADD_GSCHEMA_TARGETS(gnome-gschema "${gnome_GSCHEMA}")

View File

@ -0,0 +1,12 @@
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY .
DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)
ENDIF()
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION share/gnucash
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)

View File

@ -0,0 +1,12 @@
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY .
DESTINATION ${DATADIR_BUILD}/gnucash/ui
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)
ENDIF()
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION share/gnucash
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)

43
src/html/CMakeLists.txt Normal file
View File

@ -0,0 +1,43 @@
SET (html_HEADERS
gnc-html-history.h
gnc-html.h
gnc-html-p.h
gnc-html-factory.h
gnc-html-webkit.h
gnc-html-extras.h
gnc-html-webkit-p.h
)
SET (SWIG_GNC_HTML_C ${CMAKE_CURRENT_BINARY_DIR}/swig-gnc-html.c)
GNC_ADD_SWIG_COMMAND (${SWIG_GNC_HTML_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnc-html.i ${gncmod_html_HEADERS})
SET (html_SOURCES
gncmod-html.c
gnc-html.c
gnc-html-history.c
gnc-html-factory.c
gnc-html-webkit.c
${SWIG_GNC_HTML_C}
)
ADD_LIBRARY (gncmod-html
${html_SOURCES}
${html_HEADERS}
)
TARGET_LINK_LIBRARIES(gncmod-html gnc-qof gnc-module gncmod-gnome-utils ${WEBKIT_LDFLAGS} ${GUILE_LDFLAGS})
TARGET_COMPILE_DEFINITIONS(gncmod-html PRIVATE -DG_LOG_DOMAIN=\"gnc.html\")
TARGET_INCLUDE_DIRECTORIES (gncmod-html
PUBLIC ${WEBKIT_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}
)
INSTALL(TARGETS gncmod-html
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
INSTALL(FILES ${html_HEADERS} DESTINATION include/gnucash)

View File

@ -1,43 +1,77 @@
# CMakeLists.txt for src/import-export
# ############################################################
IF (WITH_AQBANKING)
ADD_SUBDIRECTORY (aqb)
ENDIF (WITH_AQBANKING)
ADD_SUBDIRECTORY(aqb)
ENDIF(WITH_AQBANKING)
ADD_SUBDIRECTORY(csv-exp)
ADD_SUBDIRECTORY(csv-imp)
ADD_SUBDIRECTORY(gschemas)
ADD_SUBDIRECTORY(log-replay)
IF (WITH_OFX)
ADD_SUBDIRECTORY(ofx)
ENDIF(WITH_OFX)
ADD_SUBDIRECTORY(qif)
ADD_SUBDIRECTORY(qif-imp)
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.import\")
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
#INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
#INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for pow.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof) # for qof.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module) # for gnc-module.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils) # for gnc-glib-utils.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine)
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/app-utils)
SET (libgnc_import_SOURCES
SET (generic_import_SOURCES
import-account-matcher.c
import-commodity-matcher.c
import-backend.c
import-format-dialog.c
import-match-picker.c
import-parse.c
import-utilities.c
import-settings.c
import-match-map.c
import-main-matcher.c
gncmod-generic-import.c
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${libgnc_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET_SOURCE_FILES_PROPERTIES (${generic_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET (libgnc_import_HEADERS
import-utilities.h
import-settings.h
import-match-map.h
SET (generic_import_HEADERS
import-parse.h
)
ADD_LIBRARY (gnc-import
${libgnc_import_SOURCES}
${libgnc_import_HEADERS}
)
SET (generic_import_noinst_HEADERS
import-account-matcher.h
import-backend.h
import-commodity-matcher.h
import-main-matcher.h
import-match-picker.h
import-settings.h
import-utilities.h
)
ADD_LIBRARY (gncmod-generic-import
${generic_import_SOURCES}
${generic_import_HEADERS}
${generic_import_noinst_HEADERS}
)
TARGET_LINK_LIBRARIES(gncmod-generic-import gncmod-gnome-utils gncmod-engine ${GTK2_LDFLAGS} ${GLIB2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS (gncmod-generic-import PRIVATE -DG_LOG_DOMAIN=\"gnc.import\")
TARGET_INCLUDE_DIRECTORIES(gncmod-generic-import PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
INSTALL(TARGETS gncmod-generic-import
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin
)
INSTALL(FILES ${generic_import_HEADERS} DESTINATION include/gnucash)
SET(generic_import_GLADE dialog-import.glade)
INSTALL(FILES ${generic_import_GLADE} DESTINATION share/gnucash/gtkbuilder)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${generic_import_GLADE}
DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
ENDIF()

View File

@ -1,41 +1,76 @@
# CMakeLists.txt for src/import-export/aqbanking
# ############################################################
ADD_SUBDIRECTORY(gschemas)
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.import.aqbanking\")
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
#INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
#INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
#INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${GWENHYWFAR_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${AQBANKING_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for pow.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof) # for qof.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module) # for gnc-module.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils) # for gnc-glib-utils.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine)
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/app-utils)
SET (libgnc_aqbanking_SOURCES
SET (aqbanking_SOURCES
dialog-ab-trans.c
dialog-ab-daterange.c
assistant-ab-initial.c
gnc-ab-getbalance.c
gnc-ab-gettrans.c
gnc-ab-kvp.c
# gnc-ab-utils.c
# gnc-gwen-gui.c
gnc-ab-transfer.c
gnc-ab-utils.c
gnc-file-aqb-import.c
gnc-gwen-gui.c
gnc-plugin-aqbanking.c
gncmod-aqbanking.c
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${libgnc_aqbanking_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET_SOURCE_FILES_PROPERTIES (${aqbanking_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET (libgnc_aqbanking_HEADERS
SET (aqbanking_noinst_HEADERS
dialog-ab-trans.h
dialog-ab-daterange.h
assistant-ab-initial.h
gnc-ab-getbalance.h
gnc-ab-gettrans.h
gnc-ab-kvp.h
# gnc-ab-utils.h
# gnc-gwen-gui.h
gnc-ab-transfer.h
gnc-ab-utils.h
gnc-file-aqb-import.h
gnc-gwen-gui.h
gnc-plugin-aqbanking.h
)
ADD_LIBRARY (gnc-aqbanking
${libgnc_aqbanking_SOURCES}
${libgnc_aqbanking_HEADERS}
ADD_LIBRARY (gncmod-aqbanking
${aqbanking_SOURCES}
${aqbanking_noinst_HEADERS}
)
SET(AQB_EXPORT_SYMBOLS "")
IF (WIN32)
SET(AQB_EXPORT_SYMBOLS "-Wl,--export-all-symbols")
ENDIF()
TARGET_LINK_LIBRARIES(gncmod-aqbanking gnc-gnome gncmod-gnome-utils gncmod-generic-import gncmod-register-core
gncmod-register-gnome gncmod-ledger-core gncmod-engine gnc-qof ${AQB_EXPORT_SYMBOLS} ${AQBANKING_LDFLAGS} ${GWENHYWFAR_LDFLAGS}
${GWENGUI_GTK2_LDFLAGS} ${GNOME_LDFLAGS} ${KTOBLZCHECK_LDFLAGS})
TARGET_COMPILE_DEFINITIONS(gncmod-aqbanking PRIVATE -DG_LOG_DOMAIN=\"gnc.import.aqbanking\")
TARGET_INCLUDE_DIRECTORIES(gncmod-aqbanking PRIVATE ${AQBANKING_INCLUDE_DIRS}
${GWENHYWFAR_INCLUDE_DIRS} ${KTOBLZCHECK_INCLUDE_DIRS})
INSTALL(TARGETS gncmod-aqbanking
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
# No headers to install
SET(aqbanking_GLADE assistant-ab-initial.glade dialog-ab.glade)
SET(aqbanking_UI gnc-plugin-aqbanking-ui.xml)
INSTALL(FILES ${aqbanking_GLADE} DESTINATION share/gnucash/gtkbuilder)
INSTALL(FILES ${aqbanking_UI} DESTINATION share/gnucash/ui)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${aqbanking_UI}
DESTINATION ${DATADIR_BUILD}/gnucash/ui)
FILE(COPY ${aqbanking_GLADE}
DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
ENDIF()

View File

@ -0,0 +1,4 @@
SET(aqb_GSCHEMA org.gnucash.dialogs.import.hbci.gschema.xml)
ADD_GSCHEMA_TARGETS(aqb-gschema "${aqb_GSCHEMA}")

View File

@ -0,0 +1,47 @@
ADD_SUBDIRECTORY(gschemas)
SET(csv_export_SOURCES
gncmod-csv-export.c
gnc-plugin-csv-export.c
assistant-csv-export.c
csv-tree-export.c
csv-transactions-export.c
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${csv_export_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET(csv_export_noinst_HEADERS
gnc-plugin-csv-export.h
assistant-csv-export.h
csv-tree-export.h
csv-transactions-export.h
)
ADD_LIBRARY(gncmod-csv-export ${csv_export_noinst_HEADERS} ${csv_export_SOURCES})
TARGET_LINK_LIBRARIES(gncmod-csv-export gncmod-register-gnome gncmod-register-core gncmod-ledger-core gncmod-engine
gnc-module gncmod-gnome-utils gnc-gnome gncmod-app-utils gnc-core-utils)
TARGET_COMPILE_DEFINITIONS(gncmod-csv-export PRIVATE -DG_LOG_DOMAIN=\"gnc.export.csv\")
INSTALL(TARGETS gncmod-csv-export
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
# No headers to install.
SET(csv_export_GLADE assistant-csv-export.glade)
INSTALL(FILES ${csv_export_GLADE} DESTINATION share/gnucash/gtkbuilder)
SET(csv_export_UI gnc-plugin-csv-export-ui.xml)
INSTALL(FILES ${csv_export_UI} DESTINATION share/gnucash/ui)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${csv_export_UI}
DESTINATION ${DATADIR_BUILD}/gnucash/ui)
FILE(COPY ${csv_export_GLADE}
DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
ENDIF()

View File

@ -0,0 +1,5 @@
SET(csv_exp_GSCHEMA org.gnucash.dialogs.export.csv.gschema.xml)
ADD_GSCHEMA_TARGETS(csv-exp-gschema "${csv_exp_GSCHEMA}")

View File

@ -0,0 +1,68 @@
ADD_SUBDIRECTORY(gschemas)
SET(csv_import_SOURCES
gncmod-csv-import.c
assistant-csv-account-import.c
assistant-csv-fixed-trans-import.c
assistant-csv-trans-import.c
gnc-plugin-csv-import.c
csv-account-import.c
csv-fixed-trans-import.c
gnc-csv-account-map.c
gnc-csv-model.c
gnc-csv-gnumeric-popup.c
gnc-csv-trans-settings.c
${CMAKE_SOURCE_DIR}/lib/stf/stf-parse.c
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${csv_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET(csv_import_noinst_HEADERS
assistant-csv-account-import.h
assistant-csv-fixed-trans-import.h
assistant-csv-trans-import.h
gnc-plugin-csv-import.h
csv-account-import.h
csv-fixed-trans-import.h
gnc-csv-account-map.h
gnc-csv-model.h
gnc-csv-gnumeric-popup.h
gnc-csv-trans-settings.h
${CMAKE_SOURCE_DIR}/lib/stf/stf-parse.h
)
ADD_LIBRARY(gncmod-csv-import ${csv_import_noinst_HEADERS} ${csv_import_SOURCES})
TARGET_LINK_LIBRARIES(gncmod-csv-import ${GOFFICE_LDFLAGS} gncmod-generic-import gncmod-gnome-utils
gncmod-app-utils gncmod-engine gnc-core-utils gnc-module)
TARGET_COMPILE_DEFINITIONS(gncmod-csv-import PRIVATE -DG_LOG_DOMAIN=\"gnc.import.csv\")
TARGET_INCLUDE_DIRECTORIES(gncmod-csv-import PRIVATE
${CMAKE_SOURCE_DIR}/lib ${GOFFICE_INCLUDE_DIRS}
)
INSTALL(TARGETS gncmod-csv-import
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
# No headers to install
SET(csv_import_GLADE assistant-csv-account-import.glade assistant-csv-fixed-trans-import.glade
assistant-csv-trans-import.glade)
INSTALL(FILES ${csv_import_GLADE} DESTINATION share/gnucash/gtkbuilder)
SET(csv_import_UI gnc-plugin-csv-import-ui.xml)
INSTALL(FILES ${csv_import_UI} DESTINATION share/gnucash/ui)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${csv_import_UI}
DESTINATION ${DATADIR_BUILD}/gnucash/ui)
FILE(COPY ${csv_import_GLADE}
DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
ENDIF()

View File

@ -0,0 +1,3 @@
SET(csv_imp_GSCHEMA org.gnucash.dialogs.import.csv.gschema.xml)
ADD_GSCHEMA_TARGETS(csv-imp-gschema "${csv_imp_GSCHEMA}")

View File

@ -0,0 +1,4 @@
SET(generic_import_GSCHEMA org.gnucash.dialogs.import.generic.gschema.xml)
ADD_GSCHEMA_TARGETS(generic-import-gschema "${generic_import_GSCHEMA}")

View File

@ -0,0 +1,36 @@
SET(log_replay_SOURCES
gnc-log-replay.c
gnc-plugin-log-replay.c
gncmod-log-replay.c
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${log_replay_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET(log_replay_noinst_HEADERS
gnc-log-replay.h
gnc-plugin-log-replay.h
)
ADD_LIBRARY(gncmod-log-replay ${log_replay_SOURCES} ${log_replay_noinst_HEADERS})
TARGET_LINK_LIBRARIES(gncmod-log-replay gncmod-gnome-utils gncmod-app-utils gncmod-engine
gnc-core-utils gnc-module gnc-qof ${GTK2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS(gncmod-log-replay PRIVATE -DG_LOG_DOMAIN=\"gnc.import.log-replay\")
INSTALL(TARGETS gncmod-log-replay
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
# No headers to install.
SET(log_replay_UI gnc-plugin-log-replay-ui.xml)
INSTALL(FILES ${log_replay_UI} DESTINATION share/gnucash/ui)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${log_replay_UI}
DESTINATION ${DATADIR_BUILD}/gnucash/ui)
ENDIF()

View File

@ -0,0 +1,41 @@
ADD_SUBDIRECTORY(gschemas)
SET(ofx_SOURCES
gnc-ofx-import.c
gnc-ofx-kvp.c
gncmod-ofx-import.c
gnc-plugin-ofx.c
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${ofx_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET(ofx_noinst_HEADERS
gnc-ofx-import.h
gnc-ofx-kvp.h
gnc-plugin-ofx.h
)
ADD_LIBRARY(gncmod-ofx ${ofx_SOURCES} ${ofx_noinst_HEADERS})
TARGET_LINK_LIBRARIES(gncmod-ofx gncmod-generic-import gncmod-engine gncmod-app-utils gnc-core-utils
gncmod-gnome-utils gnc-qof ${LIBOFX_LDFLAGS})
TARGET_COMPILE_DEFINITIONS(gncmod-ofx PRIVATE -DG_LOG_DOMAIN=\"gnc.import.ofx\")
TARGET_INCLUDE_DIRECTORIES(gncmod-ofx PRIVATE ${LIBOFX_INCLUDE_DIRS})
INSTALL(TARGETS gncmod-ofx
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
SET(ofx_UI gnc-plugin-ofx-ui.xml)
INSTALL(FILES ${ofx_UI} DESTINATION share/gnucash/ui)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${ofx_UI}
DESTINATION ${DATADIR_BUILD}/gnucash/ui)
ENDIF()

View File

@ -0,0 +1,4 @@
set(ofx_GSCHEMA org.gnucash.dialogs.import.ofx.gschema.xml)
ADD_GSCHEMA_TARGETS(ofx-gschema "${ofx_GSCHEMA}")

View File

@ -0,0 +1,90 @@
# CMakeLists.txt for src/import_export/qif-imp
ADD_SUBDIRECTORY(gschemas)
SET (qif_import_SOURCES
dialog-account-picker.c
assistant-qif-import.c
gnc-plugin-qif-import.c
gncmod-qif-import.c
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${qif_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET (qif_import_noinst_HEADERS
dialog-account-picker.h
assistant-qif-import.h
gnc-plugin-qif-import.h
)
ADD_LIBRARY (gncmod-qif-import ${qif_import_SOURCES} ${qif_import_noinst_HEADERS})
TARGET_LINK_LIBRARIES(gncmod-qif-import gncmod-app-utils gncmod-gnome-utils gnc-gnome)
TARGET_COMPILE_DEFINITIONS(gncmod-qif-import PRIVATE -DG_LOG_DOMAIN=\"gnc.import.qif.import\")
INSTALL(TARGETS gncmod-qif-import
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
# No headers to install.
# Scheme
SET (qif_import_SCHEME
qif-dialog-utils.scm
qif-file.scm
qif-guess-map.scm
qif-merge-groups.scm
qif-objects.scm
qif-parse.scm
qif-to-gnc.scm
qif-utils.scm
qif-import.scm # yes, included in both SETs
)
SET(qif_import_SCHEME_2
qif-import.scm
)
SET(GUILE_MODULES "")
SET(GUILE_LOAD_DIRS src/core-utils src/gnc-module src/scm)
SET(GUILE_LIBRARY_DIRS src/core-utils src/gnc-module src/gnome)
SET(GUILE_DEPENDS gncmod-qif-import scm-core-utils scm-gnc-module scm-scm)
GNC_ADD_SCHEME_TARGETS(scm-qif-import-2
"${qif_import_SCHEME_2}"
"gnucash/import-export"
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
FALSE
)
GNC_ADD_SCHEME_TARGETS(scm-qif-import
"${qif_import_SCHEME}"
"qif-import"
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
FALSE
)
SET(qif_import_GLADE assistant-qif-import.glade dialog-account-picker.glade)
INSTALL(FILES ${qif_import_GLADE} DESTINATION share/gnucash/gtkbuilder)
SET(qif_import_UI gnc-plugin-qif-import-ui.xml)
INSTALL(FILES ${qif_import_UI} DESTINATION share/gnucash/ui)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${qif_import_UI}
DESTINATION ${DATADIR_BUILD}/gnucash/ui)
FILE(COPY ${qif_import_GLADE}
DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
ENDIF()

View File

@ -0,0 +1,4 @@
set(qif_imp_GSCHEMA org.gnucash.dialogs.import.qif.gschema.xml)
ADD_GSCHEMA_TARGETS(qif-imp-gschema "${qif_imp_GSCHEMA}")

View File

@ -0,0 +1,33 @@
SET(qif_SOURCES
qif-context.c
qif-defaults.c
qif-file.c
qif-objects.c
qif-parse.c
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${qif_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET(qif_noinst_HEADERS
qif-file.h
qif-defaults.h
qif-import-p.h
qif-import.h
qif-objects.h
qif-objects-p.h
qif-parse.h
)
ADD_LIBRARY(gncmod-qif ${qif_noinst_HEADERS} ${qif_SOURCES})
TARGET_LINK_LIBRARIES(gncmod-qif gncmod-generic-import gncmod-engine gnc-qof ${GLIB2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS(gncmod-qif PRIVATE -DG_LOG_DOMAIN=\"gnc.import.qif\")
INSTALL(TARGETS gncmod-qif
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
# No headers to install.

View File

@ -1,41 +1,80 @@
# CMakeLists.txt for src/libqof
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"qof\")
SET (gnc_qof_HEADERS
qof/gnc-aqbanking-templates.h
qof/gnc-date-p.h
qof/gnc-date.h
qof/gnc-numeric.h
qof/gnc-datetime.hpp
qof/gnc-rational.hpp
qof/gnc-timezone.hpp
qof/guid.h
qof/kvp_frame.hpp
qof/kvp-value.hpp
qof/qof.h
qof/qofbackend-p.h
qof/qofbackend.h
qof/qofbook.h
qof/qofbookslots.h
qof/qofchoice.h
qof/qofclass.h
qof/qofevent.h
qof/qofid-p.h
qof/qofid.h
qof/qofinstance-p.h
qof/qofinstance.h
qof/qoflog.h
qof/qofobject.h
qof/qofquery.h
qof/qofquerycore.h
qof/qofsession.h
qof/qofutil.h
qof/qof-gobject.h
qof/qof-string-cache.h
)
SET (gnc_qof_noinst_HEADERS
qof/qofbook-p.h
qof/qofclass-p.h
qof/gnc-date-p.h
qof/qofevent-p.h
qof/gnc-int128.hpp
qof/qofobject-p.h
qof/qofquery-p.h
qof/qofquerycore-p.h
qof/qofsession-p.h
)
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR}/.. ) # for config.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for strptime.h
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src) # for platform.h
SET (libgnc_qof_SOURCES
qof/gnc-date.c
qof/gnc-numeric.c
qof/guid.c
qof/kvp-util.c
qof/kvp_frame.c
qof/md5.c
qof/qofbackend.c
qof/qofbook.c
qof/qofchoice.c
qof/qofclass.c
qof/qofevent.c
qof/qofid.c
qof/qofinstance.c
qof/qoflog.c
qof/qofobject.c
qof/qofquery.c
qof/qofquerycore.c
qof/qofreference.c
qof/qofsession.c
qof/qofutil.c
qof/qof-string-cache.c
SET (gnc_qof_SOURCES
qof/gnc-aqbanking-templates.cpp
qof/gnc-date.cpp
qof/gnc-datetime.cpp
qof/gnc-int128.cpp
qof/gnc-numeric.cpp
qof/gnc-rational.cpp
qof/gnc-datetime.cpp
qof/gnc-timezone.cpp
qof/guid.cpp
qof/kvp_frame.cpp
qof/kvp-value.cpp
qof/qofbackend.cpp
qof/qofbook.cpp
qof/qofchoice.cpp
qof/qofclass.cpp
qof/qofevent.cpp
qof/qofid.cpp
qof/qofinstance.cpp
qof/qoflog.cpp
qof/qofobject.cpp
qof/qofquery.cpp
qof/qofquerycore.cpp
qof/qofsession.cpp
qof/qofutil.cpp
qof/qof-string-cache.cpp
)
IF (WIN32)
ADD_DEFINITIONS (-DOS_WIN32)
SET (libgnc_qof_SOURCES ${libgnc_qof_SOURCES}
qof/qof-win32.c
SET (gnc_qof_SOURCES ${gnc_qof_SOURCES}
qof/qof-win32.cpp
../../lib/libc/strptime.c
../../lib/libc/localtime_r.c
../../lib/libc/gmtime_r.c
@ -43,40 +82,40 @@ IF (WIN32)
ENDIF (WIN32)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${libgnc_qof_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET_SOURCE_FILES_PROPERTIES (${gnc_qof_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET (libgnc_qof_HEADERS
qof/gnc-date-p.h
qof/gnc-date.h
qof/gnc-numeric.h
qof/guid.h
qof/kvp-util-p.h
qof/kvp-util.h
qof/kvp_frame.h
qof/qof.h
qof/qofbackend-p.h
qof/qofbackend.h
qof/qofbook.h
qof/qofbookslots.h
qof/qofchoice.h
qof/qofclass.h
qof/qofevent.h
qof/qofid-p.h
qof/qofid.h
qof/qofinstance-p.h
qof/qofinstance.h
qof/qoflog.h
qof/qofobject.h
qof/qofquery.h
qof/qofquerycore.h
qof/qofreference.h
qof/qofsession.h
qof/qofutil.h
qof/qof-gobject.h
qof/qof-string-cache.h
ADD_LIBRARY (gnc-qof
${gnc_qof_SOURCES}
${gnc_qof_HEADERS}
${gnc_qof_noinst_HEADERS}
)
ADD_LIBRARY (qof
${libgnc_qof_SOURCES}
${libgnc_qof_HEADERS}
)
TARGET_LINK_LIBRARIES(gnc-qof ${Boost_DATE_TIME_LIBRARIES} ${REGEX_LDFLAGS} ${GMODULE_LDFLAGS} ${GLIB2_LDFLAGS} ${GOBJECT_LDFLAGS})
TARGET_COMPILE_DEFINITIONS (gnc-qof PRIVATE -DG_LOG_DOMAIN=\"qof\")
TARGET_INCLUDE_DIRECTORIES (gnc-qof PUBLIC
${CMAKE_BINARY_DIR}/src # for config.h
${CMAKE_SOURCE_DIR}/src # for platform.h
${CMAKE_CURRENT_SOURCE_DIR}/qof
${GLIB2_INCLUDE_DIRS}
${LIBINTL_INCLUDE_PATH}
${REGEX_INCLUDE_PATH}
${CMAKE_SOURCE_DIR}/lib/libc # for strptime.h
)
INSTALL(TARGETS gnc-qof
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin)
INSTALL(FILES ${gnc_qof_HEADERS} DESTINATION include/gnucash)
SET(qof_test_HEADERS
qof/kvp_frame.hpp
qof/qofbook.h
qof/qofinstance.h
qof/qofobject.h
qof/qofsession.h
)
INSTALL(FILES ${qof_test_HEADERS} DESTINATION libexec/gnucash/src/libqof/qof/test)

119
src/pixmaps/CMakeLists.txt Normal file
View File

@ -0,0 +1,119 @@
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION share/gnucash
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE
)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY .
DESTINATION ${DATADIR_BUILD}/gnucash/pixmaps
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE
)
ENDIF()
FOREACH(dir 256x256 128x128 96x96 64x64 48x48)
INSTALL(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/gnucash-icon-${dir}.png
RENAME gnucash-icon.png
DESTINATION share/icons/hicolor/${dir}/apps)
IF(GNC_BUILD_AS_INSTALL)
FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/gnucash-icon-${dir}.png
DESTINATION ${DATADIR_BUILD}/icons/hicolor/${dir}/apps/gnucash-icon-${dir}.png)
ENDIF()
ENDFOREACH(dir)
INSTALL(
FILES ${CMAKE_SOURCE_DIR}/art/tango/32x32/gnucash.png
RENAME gnucash-icon.png
DESTINATION share/icons/hicolor/32x32/apps
)
INSTALL(
FILES ${CMAKE_SOURCE_DIR}/art/tango/22x22/gnucash-22x22.png
RENAME gnucash-icon.png
DESTINATION share/icons/hicolor/22x22/apps
)
INSTALL(
FILES ${CMAKE_SOURCE_DIR}/art/tango/22x22/gnucash-24x24.png
RENAME gnucash-icon.png
DESTINATION share/icons/hicolor/24x24/apps
)
INSTALL(
FILES ${CMAKE_SOURCE_DIR}/art/tango/16x16/gnucash.png
RENAME gnucash-icon.png
DESTINATION share/icons/hicolor/16x16/apps
)
INSTALL(
FILES ${CMAKE_SOURCE_DIR}/art/tango/scalable/gnucash.svg
RENAME gnucash-icon.svg
DESTINATION share/icons/hicolor/scalable/apps
)
INSTALL(
FILES ${CMAKE_SOURCE_DIR}/art/tango/16x16/gnucash.png
RENAME gnucash-icon-16x16.png
DESTINATION share/gnucash/pixmaps
)
INSTALL(
FILES ${CMAKE_SOURCE_DIR}/art/tango/32x32/gnucash.png
RENAME gnucash-icon-32x32.png
DESTINATION share/gnucash/pixmaps
)
IF (GNC_BUILD_AS_INSTALL)
FILE(
COPY ${CMAKE_SOURCE_DIR}/art/tango/32x32/gnucash.png
DESTINATION ${DATADIR_BUILD}/icons/hicolor/32x32/apps
)
FILE(RENAME ${DATADIR_BUILD}/icons/hicolor/32x32/apps/gnucash.png
${DATADIR_BUILD}/icons/hicolor/32x32/apps/gnucash-icon.png
)
FILE(
COPY ${CMAKE_SOURCE_DIR}/art/tango/22x22/gnucash-22x22.png
DESTINATION ${DATADIR_BUILD}/icons/hicolor/22x22/apps
)
FILE(RENAME ${DATADIR_BUILD}/icons/hicolor/22x22/apps/gnucash-22x22.png
${DATADIR_BUILD}/icons/hicolor/22x22/apps/gnucash-icon.png
)
FILE(
COPY ${CMAKE_SOURCE_DIR}/art/tango/22x22/gnucash-24x24.png
DESTINATION ${DATADIR_BUILD}/icons/hicolor/24x24/apps
)
FILE(RENAME ${DATADIR_BUILD}/icons/hicolor/24x24/apps/gnucash-24x24.png
${DATADIR_BUILD}/icons/hicolor/24x24/apps/gnucash-icon.png
)
FILE(
COPY ${CMAKE_SOURCE_DIR}/art/tango/16x16/gnucash.png
DESTINATION ${DATADIR_BUILD}/icons/hicolor/16x16/apps
)
FILE(RENAME ${DATADIR_BUILD}/icons/hicolor/16x16/apps/gnucash.png
${DATADIR_BUILD}/icons/hicolor/16x16/apps/gnucash-icon.png
)
FILE(
COPY ${CMAKE_SOURCE_DIR}/art/tango/scalable/gnucash.svg
DESTINATION ${DATADIR_BUILD}/icons/hicolor/scalable/apps
)
FILE(RENAME ${DATADIR_BUILD}/icons/hicolor/scalable/apps/gnucash.svg
${DATADIR_BUILD}/icons/hicolor/scalable/apps/gnucash-icon.svg
)
FILE(
COPY ${CMAKE_SOURCE_DIR}/art/tango/16x16/gnucash.png
DESTINATION ${DATADIR_BUILD}/gnucash/pixmaps
)
FILE(RENAME ${DATADIR_BUILD}/gnucash/pixmaps/gnucash.png
${DATADIR_BUILD}/gnucash/pixmaps/gnucash-icon-16x16.png
)
FILE(
COPY ${CMAKE_SOURCE_DIR}/art/tango/32x32/gnucash.png
DESTINATION ${DATADIR_BUILD}/gnucash/pixmaps
)
FILE(RENAME ${DATADIR_BUILD}/gnucash/pixmaps/gnucash.png
${DATADIR_BUILD}/gnucash/pixmaps/gnucash-icon-32x32.png
)
ENDIF()

View File

@ -0,0 +1,43 @@
ADD_SUBDIRECTORY(gtkbuilder)
ADD_SUBDIRECTORY(ui)
SET(bi_import_SOURCES
gnc-plugin-bi-import.c
gncmod-bi-import.c
dialog-bi-import-gui.c
dialog-bi-import-helper.c
dialog-bi-import.c
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${bi_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET(bi_import_noinst_HEADERS
gnc-plugin-bi-import.h
dialog-bi-import-gui.h
dialog-bi-import-helper.h
dialog-bi-import.h
)
ADD_LIBRARY(gncmod-bi_import ${bi_import_noinst_HEADERS} ${bi_import_SOURCES})
TARGET_LINK_LIBRARIES(gncmod-bi_import
gncmod-business-gnome
gncmod-gnome-utils
gncmod-gnome-search
gncmod-app-utils
gncmod-engine
gnc-core-utils
gnc-module
gnc-qof
)
TARGET_COMPILE_DEFINITIONS(gncmod-bi_import PRIVATE -DG_LOG_DOMAIN=\"gnc.plugin.bi-import\")
INSTALL(TARGETS gncmod-bi_import
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
# No headers to install.

View File

@ -0,0 +1,11 @@
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY .
DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)
ENDIF()
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION share/gnucash
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)

View File

@ -0,0 +1,12 @@
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY .
DESTINATION ${DATADIR_BUILD}/gnucash/ui
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)
ENDIF()
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION share/gnucash
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)

View File

@ -0,0 +1,32 @@
ADD_SUBDIRECTORY(gtkbuilder)
ADD_SUBDIRECTORY(ui)
SET(customer_import_SOURCES
gnc-plugin-customer_import.c
libgncmod-customer_import.c
dialog-customer-import-gui.c
dialog-customer-import.c
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${customer_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
SET(customer_import_noinst_HEADERS
gnc-plugin-customer_import.h
dialog-customer-import-gui.h
dialog-customer-import.h
)
ADD_LIBRARY(gncmod-customer_import ${customer_import_SOURCES} ${customer_input_noinst_HEADERS})
TARGET_LINK_LIBRARIES(gncmod-customer_import gncmod-business-gnome gncmod-gnome-utils gncmod-app-utils
gncmod-engine gnc-core-utils gnc-module gnc-qof ${GLIB2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS(gncmod-customer_import PRIVATE -DG_LOG_DOMAIN=\"gnc.plugin.customer_import\")
INSTALL(TARGETS gncmod-customer_import
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
# No headers to install.

View File

@ -0,0 +1,12 @@
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY .
DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)
ENDIF()
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION share/gnucash
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)

View File

@ -0,0 +1,12 @@
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY .
DESTINATION ${DATADIR_BUILD}/gnucash/ui
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)
ENDIF()
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION share/gnucash
PATTERN Makefile.* EXCLUDE
PATTERN CMakeLists.txt EXCLUDE)

46
src/quotes/CMakeLists.txt Normal file
View File

@ -0,0 +1,46 @@
SET(PERL ${PERL_EXECUTABLE})
SET(_TMPDIR ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
FILE(WRITE ${_TMPDIR}/copy_with_perms.cmake
"FILE(COPY \${SRC} DESTINATION \${DST}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)"
)
FOREACH(file gnc-fq-check.in gnc-fq-helper.in gnc-fq-update.in gnc-fq-dump)
STRING(REPLACE ".in" "" _OUTPUT_FILE_NAME ${file})
GNC_CONFIGURE2(${file} ${_OUTPUT_FILE_NAME})
SET(_ABS_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT_FILE_NAME})
INSTALL(PROGRAMS ${_ABS_OUPUT_FILE} DESTINATION bin)
IF (GNC_BUILD_AS_INSTALL)
ADD_CUSTOM_COMMAND(
OUTPUT ${_ABS_OUTPUT_FILE}
APPEND
COMMAND ${CMAKE_COMMAND} -D SRC=${_ABS_OUTPUT_FILE}
-D DST=${BINDIR_BUILD}
-P ${_TMPDIR}/copy_with_perms.cmake
)
ENDIF()
ENDFOREACH(file)
SET(_MAN_FILES "")
FOREACH(file gnc-fq-dump gnc-fq-helper)
SET(_POD_INPUT ${CMAKE_CURRENT_BINARY_DIR}/${file})
SET(_MAN_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${file}.1)
LIST(APPEND _MAN_FILES ${_MAN_OUTPUT})
ADD_CUSTOM_COMMAND(
OUTPUT ${_MAN_OUTPUT}
COMMAND
${CMAKE_COMMAND} -E env ${PERL_EXECUTABLE} ${POD2MAN_EXECUTABLE} ${_POD_INPUT} ${_MAN_OUTPUT}
DEPENDS ${_POD_INPUT}
)
ENDFOREACH(file)
# I don't bother copying the man pages for GNC_BUILD_AS_INSTALL. I probably should for completeness.
ADD_CUSTOM_TARGET(quotes-man ALL DEPENDS ${_MAN_FILES})
ADD_CUSTOM_TARGET(quotes-bin ALL DEPENDS gnc-fq-check gnc-fq-update)
INSTALL(FILES ${_MAN_FILES} DESTINATION share/man/man1)

View File

@ -0,0 +1,43 @@
SET (ledger_core_SOURCES
gnc-ledger-display.c
gnc-ledger-display2.c
gncmod-ledger-core.c
split-register.c
split-register-control.c
split-register-layout.c
split-register-load.c
split-register-model.c
split-register-model-save.c
split-register-util.c
)
SET (ledger_core_HEADERS
gnc-ledger-display.h
gnc-ledger-display2.h
split-register.h
split-register-control.h
split-register-layout.h
split-register-model.h
split-register-model-save.h
split-register-p.h
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${ledger_core_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
ADD_LIBRARY (gncmod-ledger-core ${ledger_core_SOURCES} ${ledger_core_HEADERS})
TARGET_LINK_LIBRARIES(gncmod-ledger-core gncmod-register-gnome gncmod-register-core gncmod-gnome-utils
gncmod-engine ${GTK2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS (gncmod-ledger-core PRIVATE -DG_LOG_DOMAIN=\"gnc.register.ledger\")
TARGET_INCLUDE_DIRECTORIES(gncmod-ledger-core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
INSTALL(TARGETS gncmod-ledger-core
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
# No headers to install

View File

@ -0,0 +1,59 @@
SET (register_core_SOURCES
gncmod-register-core.c
basiccell.c
cell-factory.c
cellblock.c
formulacell.c
gtable.c
numcell.c
pricecell.c
quickfillcell.c
recncell.c
checkboxcell.c
register-common.c
table-allgui.c
table-control.c
table-layout.c
table-model.c
)
SET (register_core_HEADERS
basiccell.h
cell-factory.h
cellblock.h
combocell.h
datecell.h
formulacell.h
gtable.h
numcell.h
pricecell.h
quickfillcell.h
recncell.h
checkboxcell.h
register-common.h
table-allgui.h
table-control.h
table-layout.h
table-model.h
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${register_core_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
ADD_LIBRARY (gncmod-register-core ${register_core_SOURCES} ${register_core_HEADERS})
TARGET_LINK_LIBRARIES(gncmod-register-core gncmod-gnome-utils gnc-qof gncmod-app-utils ${GMODULE_LDFLAGS})
TARGET_COMPILE_DEFINITIONS (gncmod-register-core PRIVATE -DG_LOG_DOMAIN=\"gnc.register.core\")
TARGET_INCLUDE_DIRECTORIES(gncmod-register-core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
INSTALL(TARGETS gncmod-register-core
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
INSTALL(FILES ${register_core_HEADERS} DESTINATION include/gnucash)

View File

@ -0,0 +1,58 @@
SET (register_gnome_SOURCES
gncmod-register-gnome.c
combocell-gnome.c
datecell-gnome.c
formulacell-gnome.c
gnucash-color.c
gnucash-cursor.c
gnucash-date-picker.c
gnucash-grid.c
gnucash-header.c
gnucash-item-edit.c
gnucash-item-list.c
gnucash-scrolled-window.c
gnucash-sheet.c
gnucash-style.c
pricecell-gnome.c
quickfillcell-gnome.c
table-gnome.c
)
SET (register_gnome_noinst_HEADERS
formulacell-gnome.h
gnucash-color.h
gnucash-cursor.h
gnucash-date-picker.h
gnucash-grid.h
gnucash-header.h
gnucash-item-edit.h
gnucash-item-list.h
gnucash-scrolled-window.h
gnucash-sheet.h
gnucash-sheetP.h
gnucash-style.h
pricecell-gnome.h
quickfillcell-gnome.h
table-gnome.h
)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${register_gnome_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
ADD_LIBRARY (gncmod-register-gnome ${register_gnome_SOURCES} ${register_gnome_noinst_HEADERS})
TARGET_LINK_LIBRARIES(gncmod-register-gnome gncmod-register-core gnc-qof ${GNOMECANVAS_LDFLAGS} ${GTK2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS(gncmod-register-gnome PRIVATE -DG_LOG_DOMAIN=\"gnc.register.gnome\")
TARGET_INCLUDE_DIRECTORIES(gncmod-register-gnome
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
PRIVATE ${CMAKE_SOURCE_DIR}/src/register/ledger-core ${GNOMECANVAS_INCLUDE_DIRS}
)
INSTALL(TARGETS gncmod-register-gnome
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
# No headers to install

10
src/report/CMakeLists.txt Normal file
View File

@ -0,0 +1,10 @@
ADD_SUBDIRECTORY(business-reports)
ADD_SUBDIRECTORY(jqplot)
ADD_SUBDIRECTORY(locale-specific/us)
ADD_SUBDIRECTORY(report-gnome)
ADD_SUBDIRECTORY(report-system)
ADD_SUBDIRECTORY(standard-reports)
ADD_SUBDIRECTORY(stylesheets)
ADD_SUBDIRECTORY(utility-reports)

View File

@ -0,0 +1,46 @@
SET (business_reports_SCHEME
aging.scm
customer-summary.scm
easy-invoice.scm
fancy-invoice.scm
taxinvoice.scm
receipt.scm
invoice.scm
job-report.scm
owner-report.scm
payables.scm
receivables.scm
balsheet-eg.scm
business-reports.scm
)
SET(business_reports_DATA
taxinvoice.eguile.scm
taxinvoice.css
receipt.eguile.scm
receipt.css
balsheet-eg.css
balsheet-eg.eguile.scm
)
SET(GUILE_OUTPUT_DIR gnucash/report)
SET(GUILE_MODULES src/app-utils src/engine src/html src/gnome-utils
src/report/report-system src/report/standard-reports)
SET(GUILE_LOAD_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/gnome-utils src/scm
src/report/business_reports src/report/report-system src/report/standard-reports)
SET(GUILE_LIBRARY_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/gnome-utils src/report/report-system
src/report/standard-reports)
SET(GUILE_DEPENDS scm-business-reports-links gncmod-standard-reports scm-standard-reports)
GNC_ADD_SCHEME_TARGETS(scm-business-reports
"${business_reports_SCHEME}"
${GUILE_OUTPUT_DIR}
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
TRUE
)
INSTALL(FILES ${business_reports_DATA} DESTINATION ${SCHEME_INSTALLED_SOURCE_DIR}/gnucash/report)

View File

@ -0,0 +1,33 @@
SET(gncjqplot_DATA
jquery.min.js
jquery.jqplot.js
jquery.jqplot.css
plugins/jqplot.barRenderer.js
plugins/jqplot.BezierCurveRenderer.js
plugins/jqplot.blockRenderer.js
plugins/jqplot.bubbleRenderer.js
plugins/jqplot.canvasAxisLabelRenderer.js
plugins/jqplot.canvasAxisTickRenderer.js
plugins/jqplot.canvasTextRenderer.js
plugins/jqplot.categoryAxisRenderer.js
plugins/jqplot.ciParser.js
plugins/jqplot.cursor.js
plugins/jqplot.dateAxisRenderer.js
plugins/jqplot.donutRenderer.js
plugins/jqplot.dragable.js
plugins/jqplot.enhancedLegendRenderer.js
plugins/jqplot.funnelRenderer.js
plugins/jqplot.highlighter.js
plugins/jqplot.json2.js
plugins/jqplot.logAxisRenderer.js
plugins/jqplot.mekkoAxisRenderer.js
plugins/jqplot.mekkoRenderer.js
plugins/jqplot.meterGaugeRenderer.js
plugins/jqplot.ohlcRenderer.js
plugins/jqplot.pieRenderer.js
plugins/jqplot.pointLabels.js
plugins/jqplot.trendline.js
)
INSTALL(FILES ${gncjqplot_DATA} DESTINATION share/gnucash/jqplot)

View File

@ -0,0 +1,54 @@
SET(locale_reports_us_SOURCES
gncmod-locale-reports-us.c
)
ADD_LIBRARY(gncmod-locale-reports-us ${locale_reports_us_SOURCES})
TARGET_LINK_LIBRARIES(gncmod-locale-reports-us gnc-module gncmod-app-utils gncmod-gnome-utils
${GUILE_LDFLAGS} ${GLIB2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS(gncmod-locale-reports-us PRIVATE -DG_LOG_DOMAIN=\"gnc.report.locale.us\")
INSTALL(TARGETS gncmod-locale-reports-us
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
# No headers to install
# Scheme
SET(gncmod_local_reports_us_SCHEME_1 taxtxf.scm taxtxf-de_DE.scm)
SET(gncmod_local_reports_us_SCHEME_2 us.scm de_DE.scm)
SET(GUILE_MODULES src/app-utils src/engine src/gnome-utils src/html src/report/report-system src/tax/us)
SET(GUILE_LOAD_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/gnome-utils src/report/report-system
src/scm src/tax/us)
SET(GUILE_LIBRARY_DIRS src/engine src/libqof/qof src/app-utils src/core-utils src/gnc-module src/gnome-utils
src/html src/report/report-system)
SET(GUILE_DEPENDS gncmod-html scm-tax-us-1 scm-tax-us-2 scm-report-system-3)
GNC_ADD_SCHEME_TARGETS(scm-report-locale-specific-1
"${gncmod_local_reports_us_SCHEME_1}"
gnucash/report
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
FALSE
)
GNC_ADD_SCHEME_TARGETS(scm-report-locale-specific-2
"${gncmod_local_reports_us_SCHEME_2}"
gnucash/report/locale-specific
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"scm-report-locale-specific-1;${GUILE_DEPENDS}"
FALSE
)

View File

@ -0,0 +1,77 @@
SET (report_gnome_HEADERS
dialog-report-column-view.h
dialog-custom-report.h
dialog-report-style-sheet.h
gnc-plugin-page-report.h
window-report.h
)
SET (SWIG_REPORT_GNOME_C ${CMAKE_CURRENT_BINARY_DIR}/swig-report-gnome.c)
GNC_ADD_SWIG_COMMAND (${SWIG_REPORT_GNOME_C} ${CMAKE_CURRENT_SOURCE_DIR}/report-gnome.i ${report_gnome_HEADERS})
SET (report_gnome_SOURCES
${SWIG_REPORT_GNOME_C}
dialog-report-column-view.c
dialog-custom-report.c
dialog-report-style-sheet.c
gnc-plugin-page-report.c
gncmod-report-gnome.c
window-report.c
)
ADD_LIBRARY (gncmod-report-gnome
${report_gnome_SOURCES}
${report_gnome_HEADERS}
)
TARGET_LINK_LIBRARIES(gncmod-report-gnome gncmod-report-system gncmod-html gncmod-gnome-utils
gnc-qof ${GUILE_LDFLAGS} ${GTK2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS (gncmod-report-gnome PRIVATE -DG_LOG_DOMAIN=\"gnc.report.gui\")
TARGET_INCLUDE_DIRECTORIES(gncmod-report-gnome PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
INSTALL(TARGETS gncmod-report-gnome
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
INSTALL(FILES ${report_gnome_HEADERS} DESTINATION include/gnucash)
# Scheme
SET(report_gnome_SCHEME
report-gnome.scm
)
SET(GUILE_OUTPUT_DIR gnucash/report)
SET(GUILE_MODULES src/app-utils src/scm src/engine src/gnc-module src/gnome-utils src/reports/report-system src/report/utility-reports)
SET(GUILE_LOAD_DIRS src/app-utils src/gnc-module src/engine src/scm src/core-utils src/gnome-utils)
SET(GUILE_LIBRARY_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/gnome-utils src/report-gnome)
SET(GUILE_DEPENDS gncmod-report-gnome gncmod-engine scm-app-utils scm-gnome-utils scm-core-utils scm-gnc-module scm-scm)
GNC_ADD_SCHEME_TARGETS(scm-report-gnome
"${report_gnome_SCHEME}"
${GUILE_OUTPUT_DIR}
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
FALSE
)
SET(report_gnome_GLADE dialog-custom-report.glade dialog-report.glade)
INSTALL(FILES ${report_gnome_GLADE} DESTINATION share/gnucash/gtkbuilder)
SET(report_gnome_UI gnc-plugin-page-report-ui.xml)
INSTALL(FILES ${report_gnome_UI} DESTINATION share/gnucash/ui)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${report_gnome_UI}
DESTINATION ${DATADIR_BUILD}/gnucash/ui)
FILE(COPY ${report_gnome_GLADE}
DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
ENDIF()

View File

@ -0,0 +1,107 @@
SET (report_system_HEADERS
gnc-report.h
)
SET (SWIG_REPORT_SYSTEM_C ${CMAKE_CURRENT_BINARY_DIR}/swig-report-system.c)
GNC_ADD_SWIG_COMMAND (${SWIG_REPORT_SYSTEM_C} ${CMAKE_CURRENT_SOURCE_DIR}/report-system.i ${report_system_HEADERS})
SET (report_system_SOURCES
${SWIG_REPORT_SYSTEM_C}
gncmod-report-system.c
gnc-report.c
)
ADD_LIBRARY (gncmod-report-system
${report_system_SOURCES}
${report_system_HEADERS}
)
TARGET_COMPILE_DEFINITIONS(gncmod-report-system PRIVATE -DG_LOG_DOMAIN=\"gnc.report.core\")
TARGET_LINK_LIBRARIES(gncmod-report-system gnc-module gncmod-app-utils gnc-qof ${GTK2_LDFLAGS} ${GUILE_LDFLAGS})
TARGET_INCLUDE_DIRECTORIES (gncmod-report-system
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${GTK2_INCLUDE_DIRS}
)
INSTALL(TARGETS gncmod-report-system
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
INSTALL(FILES ${report_system_HEADERS} DESTINATION include/gnucash)
# Scheme
SET (report_system_SCHEME
report-system.scm
eguile-gnc.scm
eguile-utilities.scm
eguile-html-utilities.scm
)
SET (report_system_SCHEME_2
collectors.scm
list-extras.scm
report-collectors.scm
)
SET (report_system_SCHEME_3
commodity-utilities.scm
html-acct-table.scm
html-barchart.scm
html-document.scm
html-fonts.scm
html-piechart.scm
html-scatter.scm
html-linechart.scm
html-style-info.scm
html-style-sheet.scm
html-table.scm
html-text.scm
html-utilities.scm
html-jqplot.scm
options-utilities.scm
report-utilities.scm
report.scm
)
SET(GUILE_MODULES src/app-utils src/engine src/html src/gnome-utils)
SET(GUILE_LOAD_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/gnome-utils src/report/report-system src/scm)
SET(GUILE_LIBRARY_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/gnome-utils)
SET(GUILE_DEPENDS gncmod-html gncmod-gnome-utils gncmod-report-system scm-app-utils scm-gnome-utils)
GNC_ADD_SCHEME_TARGETS(scm-report-system
"${report_system_SCHEME}"
"gnucash/report"
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
FALSE
)
GNC_ADD_SCHEME_TARGETS(scm-report-system-2
"${report_system_SCHEME_2}"
"gnucash/report/report-system"
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
scm-report-system
FALSE
)
GNC_ADD_SCHEME_TARGETS(scm-report-system-3
"${report_system_SCHEME_3}"
""
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
scm-report-system-2
FALSE
)

View File

@ -0,0 +1,84 @@
SET(standard_reports_SOURCES gncmod-standard-reports.c)
ADD_LIBRARY (gncmod-standard-reports ${standard_reports_SOURCES})
TARGET_LINK_LIBRARIES(gncmod-standard-reports gnc-module ${GTK2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS(gncmod-standard-reports PRIVATE -DG_LOG_DOMAIN=\"gnc.report.standard\")
TARGET_INCLUDE_DIRECTORIES(gncmod-standard-reports PRIVATE ${GUILE_INCLUDE_DIRS})
INSTALL(TARGETS gncmod-standard-reports
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
# No headers to install
# Scheme
SET (standard_reports_SCHEME standard-reports.scm)
SET (standard_reports_SCHEME_2
account-piecharts.scm
account-summary.scm
advanced-portfolio.scm
average-balance.scm
balance-sheet.scm
budget-balance-sheet.scm
budget-barchart.scm
budget-flow.scm
budget-income-statement.scm
budget.scm
cash-flow.scm
category-barchart.scm
daily-reports.scm
equity-statement.scm
general-journal.scm
general-ledger.scm
income-statement.scm
net-barchart.scm
net-linechart.scm
portfolio.scm
price-scatter.scm
register.scm
sx-summary.scm
transaction.scm
trial-balance.scm
)
SET(GUILE_MODULES src/app-utils src/engine src/gnome-utils src/html src/report/report-system)
SET(GUILE_LOAD_DIRS src/app-utils src/engine src/core-utils src/gnc-module src/gnome-utils src/report/report-system src/scm)
SET(GUILE_LIBRARY_DIRS src/app-utils src/engine src/core-utils src/gnc-module src/gnome-utils src/report/report-system)
SET(GUILE_DEPENDS gncmod-html scm-app-utils scm-gnome-utils scm-report-system scm-report-system-3)
GNC_ADD_SCHEME_TARGETS(scm-standard-reports
"${standard_reports_SCHEME}"
"gnucash/report"
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"scm-standard-reports-2;${GUILE_DEPENDS}"
TRUE
)
GNC_ADD_SCHEME_TARGETS(scm-standard-reports-2
"${standard_reports_SCHEME_2}"
"gnucash/report/standard-reports"
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"scm-standard-reports-2-links;${GUILE_DEPENDS}"
TRUE
)
# FIXME: This is a hack since core-utils assumes an autotools build environment.
SET(STD_RPT_DIR ${CMAKE_CURRENT_BINARY_DIR}/gnucash/report)
FILE(MAKE_DIRECTORY ${STD_RPT_DIR})
FILE(COPY standard-reports.scm DESTINATION ${STD_RPT_DIR})
FILE(MAKE_DIRECTORY ${STD_RPT_DIR}/standard-reports)
FILE(COPY ${standard_reports_SCHEME_2} DESTINATION ${STD_RPT_DIR}/standard-reports)

View File

@ -0,0 +1,80 @@
SET(stylesheets_SOURCES
gnc-plugin-stylesheets.c
gncmod-stylesheets.c
)
SET(stylesheet_noinst_HEADERS
gnc-plugin-stylesheets.h
)
ADD_LIBRARY(gncmod-stylesheets MODULE ${stylesheets_SOURCES} ${stylesheets_noinst_HEADERS})
TARGET_LINK_LIBRARIES(gncmod-stylesheets gncmod-report-gnome gncmod-report-system gncmod-gnome-utils gnc-module
gnc-qof ${GUILE_LDFLAGS} ${GTK2_LDFLAGS} ${GLIB2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS(gncmod-stylesheets PRIVATE -DG_LOG_DOMAIN=\"gnc.report.core\")
SET(LIB_DIR lib/gnucash)
IF (WIN32)
SET(LIB_DIR bin)
ENDIF(WIN32)
INSTALL(TARGETS gncmod-stylesheets
LIBRARY DESTINATION ${LIB_DIR}
ARCHIVE DESTINATION ${LIB_DIR}
RUNTIME DESTINATION bin)
# No headers to install
# Scheme
SET(stylesheets_SCHEME_1
stylesheet-plain.scm
stylesheet-fancy.scm
stylesheet-footer.scm
stylesheet-easy.scm
stylesheet-head-or-tail.scm
)
SET(stylesheets_SCHEME_2
stylesheets.scm
)
SET(GUILE_OUTPUT_DIR gnucash/report)
SET(GUILE_MODULES src/app-utils src/engine src/html src/gnome-utils src/report/report-system)
SET(GUILE_LOAD_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/gnome-utils src/report/report-system src/scm)
SET(GUILE_LIBRARY_DIRS src/engine src/app-utils src/core-utils src/gnc-module src/gnome-utils src/html src/report/report-system)
SET(GUILE_DEPENDS gncmod-html scm-app-utils scm-report-system-3)
GNC_ADD_SCHEME_TARGETS(scm-report-stylesheets-1
"${stylesheets_SCHEME_1}"
${GUILE_OUTPUT_DIR}
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
TRUE
)
GNC_ADD_SCHEME_TARGETS(scm-report-stylesheets-2
"${stylesheets_SCHEME_2}"
${GUILE_OUTPUT_DIR}
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"scm-report-stylesheets-1;${GUILE_DEPENDS}"
TRUE
)
ADD_CUSTOM_TARGET(scm-report-stylesheets ALL DEPENDS scm-report-stylesheets-1 scm-report-stylesheets-2)
SET(stylesheets_UI gnc-plugin-stylesheets-ui.xml)
INSTALL(FILES ${stylesheets_UI} DESTINATION share/gnucash/ui)
IF (GNC_BUILD_AS_INSTALL)
FILE(COPY ${stylesheets_UI}
DESTINATION ${DATADIR_BUILD}/gnucash/ui)
ENDIF()

View File

@ -0,0 +1,55 @@
SET(utility_reports_SOURCES
gncmod-utility-reports.c
)
ADD_LIBRARY(gncmod-utility-reports MODULE ${utility_reports_SOURCES})
TARGET_LINK_LIBRARIES(gncmod-utility-reports gnc-module ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS})
TARGET_COMPILE_DEFINITIONS(gncmod-utility-reports PRIVATE -DG_LOG_DOMAIN=\"gnc.report.util\")
TARGET_INCLUDE_DIRECTORIES(gncmod-utility-reports
PRIVATE ${GUILE_INCLUDE_DIRS}
)
SET(LIB_DIR lib/gnucash)
IF (WIN32)
SET(LIB_DIR bin)
ENDIF(WIN32)
INSTALL(TARGETS gncmod-utility-reports
LIBRARY DESTINATION ${LIB_DIR}
ARCHIVE DESTINATION ${LIB_DIR}
RUNTIME DESTINATION bin)
# Scheme
SET(utility_reports_SCHEME
hello-world.scm
utility-reports.scm
view-column.scm
welcome-to-gnucash.scm
)
SET(GUILE_OUTPUT_DIR gnucash/report)
SET(GUILE_MODULES src/app-utils src/engine src/gnome-utils src/html src/report/report-system)
SET(GUILE_LOAD_DIRS src/app-utils src/core-utils src/engine src/gnc-module
src/gnome-utils src/report/report-system src/scm)
SET(GUILE_LIBRARY_DIRS src/engine src/app-utils src/core-utils src/gnc-module src/gnome-utils src/html
src/report/report-system)
SET(GUILE_DEPENDS scm-utility-reports-links scm-app-utils scm-report-system-3)
GNC_ADD_SCHEME_TARGETS(scm-utility-reports
"${utility_reports_SCHEME}"
${GUILE_OUTPUT_DIR}
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
TRUE
)

66
src/scm/CMakeLists.txt Normal file
View File

@ -0,0 +1,66 @@
ADD_SUBDIRECTORY(gnumeric)
SET (BUILD_CONFIG_SCM ${CMAKE_CURRENT_BINARY_DIR}/build-config.scm)
SET (scm_SCHEME_4
substring-search.scm
xml-generator.scm
)
# We need to replace a couple of variables in build-config.scm. Normally, I
# would use CONFIGURE_FILE to do this. But this scheme files is using a different
# replacement marking scheme ("@-", "-@") than the usual one with just "@"
# that CONFIGURE_FILE expects.
# FIXME: ${BUILD_CONFIG_SCM} needs a rule to cause it to be generated, I think.
IF (HAVE_GUILE1)
GNC_CONFIGURE(build-config.scm.in build-config.scm)
ELSE()
GNC_CONFIGURE2(build-config.scm.in build-config.scm)
ENDIF()
# CONFIGURE_FILE(build-config.scm.in ${BUILD_CONFIG_SCM})
SET(GUILE_MODULES "")
SET(GUILE_LOAD_DIRS src/core-utils src/gnc-module)
SET(GUILE_LIBRARY_DIRS src/core-utils src/gnc-module)
SET(GUILE_DEPENDS scm-core-utils scm-gnc-module)
SET(scm_SCHEME_0
fin.scm
string.scm
${BUILD_CONFIG_SCM}
substring-search.scm
xml-generator.scm
)
GNC_ADD_SCHEME_TARGETS(scm-scm-0 "${scm_SCHEME_0}" "" "" "" "" "" FALSE)
GNC_ADD_SCHEME_TARGETS(scm-scm-1 "printf.scm" gnucash "" "" "" "" FALSE)
GNC_ADD_SCHEME_TARGETS(scm-scm-2
main.scm
gnucash
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"scm-scm-1;${GUILE_DEPENDS}" # requires printf.scm from scm-scm-1 and modules from GUILE_DEPENDS
FALSE
)
# depends on main.scm
GNC_ADD_SCHEME_TARGETS(scm-scm-3
price-quotes.scm
gnucash
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"scm-scm-2;scm-scm-0" # depends on build_config.scm
FALSE)
ADD_CUSTOM_TARGET(scm-scm ALL DEPENDS scm-scm-3 scm-scm-2 scm-scm-1 scm-scm-0 scm-gnumeric)
INSTALL(FILES config DESTINATION etc/gnucash)

View File

@ -0,0 +1,19 @@
SET(gnumeric_SCHEME gnumeric-utilities.scm table-utils.scm)
SET(GUILE_MODULES "")
SET(GUILE_LOAD_DIRS "")
SET(GUILE_LIBRARY_DIRS "")
SET(GUILE_DEPENDS "")
GNC_ADD_SCHEME_TARGETS(scm-gnumeric
"${gnumeric_SCHEME}"
gnumeric
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
FALSE
)

48
src/tax/us/CMakeLists.txt Normal file
View File

@ -0,0 +1,48 @@
SET(tax_us_SOURCES gncmod-tax-us.c)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${tax_us_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
ADD_LIBRARY(gncmod-tax-us ${tax_us_SOURCES})
TARGET_LINK_LIBRARIES(gncmod-tax-us gnc-module ${GLIB2_LDFLAGS} ${GUILE_LDFLAGS})
TARGET_INCLUDE_DIRECTORIES(gncmod-tax-us
PRIVATE ${CMAKE_BINARY_DIR}/src ${GUILE_INCLUDE_DIRS})
INSTALL(TARGETS gncmod-tax-us
LIBRARY DESTINATION lib/gnucash
ARCHIVE DESTINATION lib/gnucash
RUNTIME DESTINATION bin)
# No headers to install
# Scheme
SET(gncmod_tax_us_SCHEME_1 txf.scm txf-help.scm txf-de_DE.scm txf-help-de_DE.scm)
SET(gncmod_tax_us_SCHEME_2 de_DE.scm us.scm)
SET(GUILE_MODULES src/app-utils src/engine)
SET(GUILE_LOAD_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/scm)
SET(GUILE_LIBRARY_DIRS src/app-utils src/engine src/gnc-module)
SET(GUILE_DEPENDS scm-app-utils)
GNC_ADD_SCHEME_TARGETS(scm-tax-us-1
"${gncmod_tax_us_SCHEME_1}"
""
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
FALSE
)
GNC_ADD_SCHEME_TARGETS(scm-tax-us-2
"${gncmod_tax_us_SCHEME_2}"
gnucash/tax
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
FALSE
)

View File

@ -0,0 +1,54 @@
SET(test_core_SOURCES
test-stuff.c
unittest-support.c
)
SET(test_core_noinst_HEADERS
test-stuff.h
unittest-support.h
)
INCLUDE_DIRECTORIES(
${CMAKE_BINARY_DIR}/src
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/src/libqof/qof
${CMAKE_SOURCE_DIR}/src/test-core
${GLIB2_INCLUDE_DIRS}
${GUILE_INCLUDE_DIRS}
)
ADD_LIBRARY(test-core ${test_core_SOURCES} ${test_core_noinst_HEADERS})
TARGET_LINK_LIBRARIES(test-core gnc-qof ${GLIB2_LDFLAGS})
SET (SWIG_UNITTEST_SUPPORT_GUILE_C ${CMAKE_CURRENT_BINARY_DIR}/swig-unittest-support-guile.c)
GNC_ADD_SWIG_COMMAND (${SWIG_UNITTEST_SUPPORT_GUILE_C}
${CMAKE_CURRENT_SOURCE_DIR}/unittest-support.i ${test_core_HEADERS})
SET(test_core_guile_SOURCES ${SWIG_UNITTEST_SUPPORT_GUILE_C})
ADD_LIBRARY(test-core-guile ${test_core_guile_SOURCES})
TARGET_LINK_LIBRARIES(test-core-guile test-core ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS})
SET(test_core_SCHEME unittest-support.scm)
SET(GUILE_OUTPUT_DIR gnucash)
SET(GUILE_MODULES "")
SET(GUILE_LOAD_DIRS "")
SET(GUILE_LIBRARY_DIRS src/test-core src/libqof)
SET(GUILE_DEPENDS test-core-guile)
GNC_ADD_SCHEME_TARGETS(scm_test_core
${test_core_SCHEME}
${GUILE_OUTPUT_DIR}
"${GUILE_MODULES}"
"${GUILE_LOAD_DIRS}"
"${GUILE_LIBRARY_DIRS}"
"${GUILE_DEPENDS}"
FALSE
)
INSTALL(FILES unittest-support.h DESTINATION libexec/gnucash/src/libqof/qof/test)