mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Make CMake system more complete so that it builds on win32/mingw.
Also, add a test executable to check that we got all the library dependencies. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18737 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
@@ -17,36 +17,39 @@ INCLUDE (GncAddSwigCommand)
|
|||||||
# Find pkg-config
|
# Find pkg-config
|
||||||
FIND_PACKAGE (PkgConfig REQUIRED)
|
FIND_PACKAGE (PkgConfig REQUIRED)
|
||||||
|
|
||||||
|
IF (NOT PKG_CONFIG_FOUND)
|
||||||
|
MESSAGE (SEND_ERROR "pkg-config not found, but is required")
|
||||||
|
ENDIF (NOT PKG_CONFIG_FOUND)
|
||||||
|
|
||||||
# glib
|
# glib
|
||||||
PKG_CHECK_MODULES (GLIB2 glib-2.0>=2.12.0)
|
PKG_CHECK_MODULES (GLIB2 glib-2.0>=2.20.0)
|
||||||
PKG_CHECK_MODULES (GCONF2 gconf-2.0>=2.0)
|
PKG_CHECK_MODULES (GCONF2 gconf-2.0>=2.0)
|
||||||
|
PKG_CHECK_MODULES (GOBJECT gobject-2.0>=2.20.0)
|
||||||
|
PKG_CHECK_MODULES (GMODULE gmodule-2.0>=2.20.0)
|
||||||
|
PKG_CHECK_MODULES (GTHREAD gthread-2.0>=2.20.0)
|
||||||
|
|
||||||
IF (NOT GLIB2_FOUND)
|
IF (NOT GLIB2_FOUND)
|
||||||
MESSAGE (SEND_ERROR "Gtk not found, but is required")
|
MESSAGE (SEND_ERROR "Glib2 not found, but is required")
|
||||||
ENDIF (NOT GLIB2_FOUND)
|
ENDIF (NOT GLIB2_FOUND)
|
||||||
|
|
||||||
FIND_PATH (LIBINTL_INCLUDE_PATH NAMES libintl.h
|
FIND_PATH (LIBINTL_INCLUDE_PATH NAMES libintl.h
|
||||||
PATHS /usr/include /opt/gnome/include)
|
PATHS /usr/include /opt/gnome/include)
|
||||||
|
FIND_LIBRARY (LIBINTL_LIBRARY NAMES intl)
|
||||||
FIND_PATH (REGEX_INCLUDE_PATH NAMES regex.h
|
FIND_PATH (REGEX_INCLUDE_PATH NAMES regex.h
|
||||||
PATHS /usr/include /opt/gnome/include)
|
PATHS /usr/include /opt/gnome/include)
|
||||||
|
FIND_LIBRARY (REGEX_LIBRARY NAMES regex)
|
||||||
|
|
||||||
# ############################################################
|
# ############################################################
|
||||||
|
|
||||||
|
# SWIG
|
||||||
FIND_PACKAGE (SWIG REQUIRED)
|
FIND_PACKAGE (SWIG REQUIRED)
|
||||||
INCLUDE (${SWIG_USE_FILE})
|
INCLUDE (${SWIG_USE_FILE})
|
||||||
|
|
||||||
#FIND_PACKAGE (GUILE REQUIRED)
|
# guile
|
||||||
|
FIND_PATH (LIBGUILE_INCLUDE_PATH NAMES libguile.h
|
||||||
# Command to generate the swig-runtime.h header
|
PATHS /usr/include)
|
||||||
SET (SWIG_RUNTIME_H ${CMAKE_BINARY_DIR}/swig-runtime.h)
|
FIND_LIBRARY (LIBGUILE_LIBRARIES NAMES guile)
|
||||||
ADD_CUSTOM_COMMAND (
|
FIND_PROGRAM (GUILE_EXECUTABLE guile)
|
||||||
OUTPUT ${SWIG_RUNTIME_H}
|
|
||||||
DEPENDS ${CMAKE_SOURCE_DIR}/CMakeLists.txt
|
|
||||||
COMMAND ${SWIG_EXECUTABLE} -guile -external-runtime ${SWIG_RUNTIME_H}
|
|
||||||
)
|
|
||||||
|
|
||||||
# Add a custom target to drive the custom command.
|
|
||||||
ADD_CUSTOM_TARGET (swig-runtime-h ALL DEPENDS ${SWIG_RUNTIME_H})
|
|
||||||
|
|
||||||
# ############################################################
|
# ############################################################
|
||||||
|
|
||||||
@@ -57,75 +60,71 @@ ADD_CUSTOM_TARGET (swig-runtime-h ALL DEPENDS ${SWIG_RUNTIME_H})
|
|||||||
IF (UNIX)
|
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} -Werror -Wdeclaration-after-statement -Wno-pointer-sign -D_FORTIFY_SOURCE=2 -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wno-unused")
|
||||||
ENDIF (UNIX)
|
ENDIF (UNIX)
|
||||||
|
IF (MINGW)
|
||||||
|
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wdeclaration-after-statement -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wno-unused")
|
||||||
|
ENDIF (MINGW)
|
||||||
|
|
||||||
# ############################################################
|
# ############################################################
|
||||||
|
|
||||||
|
# Create config.h
|
||||||
ADD_DEFINITIONS (-DHAVE_CONFIG_H)
|
ADD_DEFINITIONS (-DHAVE_CONFIG_H)
|
||||||
|
|
||||||
# Create config.h
|
SET (CONFIG_H ${CMAKE_CURRENT_BINARY_DIR}/config.h.tmp)
|
||||||
SET (CONFIG_H ${CMAKE_CURRENT_BINARY_DIR}/config.h)
|
|
||||||
FILE (WRITE ${CONFIG_H} "#define PACKAGE \"gnucash\"\n")
|
FILE (WRITE ${CONFIG_H} "#define PACKAGE \"gnucash\"\n")
|
||||||
IF (WIN32)
|
|
||||||
FILE (APPEND ${CONFIG_H} "#define HAVE_SCANF_I64D 1\n")
|
|
||||||
ENDIF (WIN32)
|
|
||||||
IF (UNIX)
|
|
||||||
FILE (APPEND ${CONFIG_H} "#define HAVE_SCANF_LLD 1\n")
|
|
||||||
ENDIF (UNIX)
|
|
||||||
IF (UNIX OR MINGW)
|
|
||||||
FILE (APPEND ${CONFIG_H} "#define HAVE_SYS_TIME_H 1\n")
|
|
||||||
FILE (APPEND ${CONFIG_H} "#define HAVE_UNISTD_H 1\n")
|
|
||||||
FILE (APPEND ${CONFIG_H} "#define HAVE_DIRENT_H 1\n")
|
|
||||||
ENDIF (UNIX OR MINGW)
|
|
||||||
|
|
||||||
IF (UNIX)
|
FILE (APPEND ${CONFIG_H} "
|
||||||
|
#define GNUCASH_MAJOR_VERSION 2
|
||||||
|
#define GNUCASH_MICRO_VERSION 10
|
||||||
|
#define GNUCASH_MINOR_VERSION 3
|
||||||
|
#define VERSION "2.3.10"
|
||||||
|
|
||||||
|
/* Definitions for all OS */
|
||||||
|
#define HAVE_LIBQOF /**/
|
||||||
|
#define QOF_DISABLE_DEPRECATED 1
|
||||||
|
")
|
||||||
|
|
||||||
|
IF (WIN32)
|
||||||
FILE (APPEND ${CONFIG_H} "
|
FILE (APPEND ${CONFIG_H} "
|
||||||
|
#define HAVE_SCANF_I64D 1
|
||||||
|
#define HAVE_HTMLHELPW 1
|
||||||
|
#define OS_WIN32 1
|
||||||
|
")
|
||||||
|
ENDIF (WIN32)
|
||||||
|
|
||||||
|
IF (MINGW)
|
||||||
|
FILE (APPEND ${CONFIG_H} "
|
||||||
|
#define HAVE_PUTENV 1
|
||||||
|
")
|
||||||
|
ENDIF (MINGW)
|
||||||
|
|
||||||
|
IF (UNIX OR MINGW)
|
||||||
|
FILE (APPEND ${CONFIG_H} "
|
||||||
|
#define GETTEXT_PACKAGE \"gnucash\"
|
||||||
#define HAVE_BIND_TEXTDOMAIN_CODESET 1
|
#define HAVE_BIND_TEXTDOMAIN_CODESET 1
|
||||||
#define HAVE_CHOWN 1
|
#define HAVE_DIRENT_H 1
|
||||||
#define HAVE_DCGETTEXT 1
|
#define HAVE_DCGETTEXT 1
|
||||||
#define HAVE_DLERROR 1
|
#define HAVE_SYS_TIME_H 1
|
||||||
#define HAVE_DLFCN_H 1
|
#define HAVE_UNISTD_H 1
|
||||||
#define HAVE_GETHOSTID 1
|
|
||||||
#define HAVE_GETHOSTNAME 1
|
|
||||||
#define HAVE_GETPPID 1
|
|
||||||
#define HAVE_GETTEXT 1
|
#define HAVE_GETTEXT 1
|
||||||
#define HAVE_GETTIMEOFDAY 1
|
#define HAVE_GETTIMEOFDAY 1
|
||||||
#define HAVE_GETUID 1
|
#define HAVE_GUILE 1
|
||||||
#define HAVE_GMTIME_R 1
|
|
||||||
#define HAVE_INTTYPES_H 1
|
#define HAVE_INTTYPES_H 1
|
||||||
#define HAVE_LANGINFO_D_FMT 1
|
|
||||||
#define HAVE_LC_MESSAGES 1
|
|
||||||
#define HAVE_LIBM 1
|
#define HAVE_LIBM 1
|
||||||
#define HAVE_LIBPTHREAD 1
|
|
||||||
#define HAVE_LIBQOF /**/
|
|
||||||
#define HAVE_LIMITS_H 1
|
#define HAVE_LIMITS_H 1
|
||||||
#define HAVE_LINK 1
|
|
||||||
#define HAVE_LOCALE_H 1
|
#define HAVE_LOCALE_H 1
|
||||||
#define HAVE_LOCALTIME_R 1
|
|
||||||
#define HAVE_MEMCPY 1
|
#define HAVE_MEMCPY 1
|
||||||
#define HAVE_MEMORY_H 1
|
#define HAVE_MEMORY_H 1
|
||||||
#define HAVE_PTHREAD_MUTEX_INIT 1
|
|
||||||
#define HAVE_SETENV 1
|
|
||||||
#define HAVE_STDINT_H 1
|
#define HAVE_STDINT_H 1
|
||||||
#define HAVE_STDLIB_H 1
|
#define HAVE_STDLIB_H 1
|
||||||
#define HAVE_STPCPY 1
|
|
||||||
#define HAVE_STRINGS_H 1
|
#define HAVE_STRINGS_H 1
|
||||||
#define HAVE_STRING_H 1
|
#define HAVE_STRING_H 1
|
||||||
#define HAVE_STRPTIME 1
|
|
||||||
#define HAVE_STRUCT_TM_GMTOFF 1
|
|
||||||
#define HAVE_SYS_STAT_H 1
|
#define HAVE_SYS_STAT_H 1
|
||||||
#define HAVE_SYS_TIMES_H 1
|
|
||||||
#define HAVE_SYS_TIME_H 1
|
#define HAVE_SYS_TIME_H 1
|
||||||
#define HAVE_SYS_TYPES_H 1
|
#define HAVE_SYS_TYPES_H 1
|
||||||
#define HAVE_SYS_WAIT_H 1
|
|
||||||
#define HAVE_TIMEGM 1
|
|
||||||
#define HAVE_TOWUPPER 1
|
#define HAVE_TOWUPPER 1
|
||||||
#define HAVE_UNISTD_H 1
|
#define HAVE_UNISTD_H 1
|
||||||
#define HAVE_UTMP_H 1
|
|
||||||
#define HAVE_WCTYPE_H 1
|
#define HAVE_WCTYPE_H 1
|
||||||
#define HAVE_X11_XLIB_H 1
|
|
||||||
|
|
||||||
/* Don't use deprecated qof functions */
|
|
||||||
#define QOF_DISABLE_DEPRECATED 1
|
|
||||||
/* Define to 1 if you have the ANSI C header files. */
|
/* Define to 1 if you have the ANSI C header files. */
|
||||||
#define STDC_HEADERS 1
|
#define STDC_HEADERS 1
|
||||||
|
|
||||||
@@ -150,11 +149,6 @@ IF (UNIX)
|
|||||||
# define __EXTENSIONS__ 1
|
# define __EXTENSIONS__ 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Version number of package */
|
|
||||||
#define VERSION "2.3.10"
|
|
||||||
|
|
||||||
/* 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 AC_APPLE_UNIVERSAL_BUILD
|
||||||
# if defined __BIG_ENDIAN__
|
# if defined __BIG_ENDIAN__
|
||||||
# define WORDS_BIGENDIAN 1
|
# define WORDS_BIGENDIAN 1
|
||||||
@@ -165,25 +159,46 @@ IF (UNIX)
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
")
|
")
|
||||||
|
ENDIF (UNIX OR MINGW)
|
||||||
|
|
||||||
|
IF (UNIX)
|
||||||
|
FILE (APPEND ${CONFIG_H} "
|
||||||
|
#define HAVE_CHOWN 1
|
||||||
|
#define HAVE_DLERROR 1
|
||||||
|
#define HAVE_DLFCN_H 1
|
||||||
|
#define HAVE_GETHOSTID 1
|
||||||
|
#define HAVE_GETHOSTNAME 1
|
||||||
|
#define HAVE_GETPPID 1
|
||||||
|
#define HAVE_GETUID 1
|
||||||
|
#define HAVE_GMTIME_R 1
|
||||||
|
#define HAVE_LANGINFO_D_FMT 1
|
||||||
|
#define HAVE_LC_MESSAGES 1
|
||||||
|
#define HAVE_LIBPTHREAD 1
|
||||||
|
#define HAVE_LINK 1
|
||||||
|
#define HAVE_LOCALTIME_R 1
|
||||||
|
#define HAVE_PTHREAD_MUTEX_INIT 1
|
||||||
|
#define HAVE_SCANF_LLD 1
|
||||||
|
#define HAVE_SETENV 1
|
||||||
|
#define HAVE_STPCPY 1
|
||||||
|
#define HAVE_STRPTIME 1
|
||||||
|
#define HAVE_STRUCT_TM_GMTOFF 1
|
||||||
|
#define HAVE_SYS_TIMES_H 1
|
||||||
|
#define HAVE_SYS_WAIT_H 1
|
||||||
|
#define HAVE_TIMEGM 1
|
||||||
|
#define HAVE_UTMP_H 1
|
||||||
|
#define HAVE_X11_XLIB_H 1
|
||||||
|
")
|
||||||
ENDIF (UNIX)
|
ENDIF (UNIX)
|
||||||
|
|
||||||
|
# Let cmake copy the created file only on changes.
|
||||||
FILE (APPEND ${CONFIG_H} "
|
CONFIGURE_FILE (${CONFIG_H} ${CMAKE_CURRENT_BINARY_DIR}/config.h COPYONLY)
|
||||||
/* GnuCash Major version number */
|
|
||||||
#define GNUCASH_MAJOR_VERSION 2
|
|
||||||
|
|
||||||
/* GnuCash Micro version number */
|
|
||||||
#define GNUCASH_MICRO_VERSION 10
|
|
||||||
|
|
||||||
/* GnuCash Minor version number */
|
|
||||||
#define GNUCASH_MINOR_VERSION 3
|
|
||||||
")
|
|
||||||
|
|
||||||
# ############################################################
|
# ############################################################
|
||||||
|
|
||||||
# The subdirectories
|
# The subdirectories
|
||||||
#ADD_SUBDIRECTORY (libqof)
|
ADD_SUBDIRECTORY (libqof)
|
||||||
ADD_SUBDIRECTORY (core-utils)
|
ADD_SUBDIRECTORY (core-utils)
|
||||||
ADD_SUBDIRECTORY (gnc-module)
|
ADD_SUBDIRECTORY (gnc-module)
|
||||||
ADD_SUBDIRECTORY (engine)
|
ADD_SUBDIRECTORY (engine)
|
||||||
|
|
||||||
|
ADD_SUBDIRECTORY (test-core)
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
# CMakeLists.txt for src/core-utils
|
# CMakeLists.txt for src/core-utils
|
||||||
|
|
||||||
# EXPERIMENTAL! This is just a trial of how far we can get for a cmake
|
|
||||||
# build system.
|
|
||||||
|
|
||||||
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.core-utils\")
|
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.core-utils\")
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
|
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
|
||||||
INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
|
INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
|
||||||
INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
|
INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
|
||||||
INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
|
INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
|
||||||
|
INCLUDE_DIRECTORIES (${LIBGUILE_INCLUDE_PATH})
|
||||||
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR} ) # for config.h
|
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR} ) # for config.h
|
||||||
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}) # for gnc-ui.h
|
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}) # for gnc-ui.h
|
||||||
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}) # when building swig-core-utils.c
|
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}) # when building swig-core-utils.c
|
||||||
@@ -38,4 +36,3 @@ ADD_LIBRARY (core-utils
|
|||||||
${libgnc_core_utils_SOURCES}
|
${libgnc_core_utils_SOURCES}
|
||||||
${libgnc_core_utils_HEADERS}
|
${libgnc_core_utils_HEADERS}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,11 @@
|
|||||||
# CMakeLists.txt for src/libqof
|
# CMakeLists.txt for src/engine
|
||||||
|
|
||||||
# EXPERIMENTAL! This is just a trial of how far we can get for a cmake
|
|
||||||
# build system.
|
|
||||||
|
|
||||||
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.engine\")
|
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.engine\")
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
|
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
|
||||||
INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
|
INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
|
||||||
INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
|
INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
|
||||||
|
INCLUDE_DIRECTORIES (${LIBGUILE_INCLUDE_PATH})
|
||||||
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR} ) # for config.h
|
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR} ) # for config.h
|
||||||
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}) # for gnc-ui.h
|
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}) # for gnc-ui.h
|
||||||
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/libqof/qof) # for qof.h
|
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/libqof/qof) # for qof.h
|
||||||
@@ -62,13 +60,38 @@ SET (SWIG_ENGINE_C ${CMAKE_CURRENT_BINARY_DIR}/swig-engine.c)
|
|||||||
GNC_ADD_SWIG_COMMAND (${SWIG_ENGINE_C} ${CMAKE_CURRENT_SOURCE_DIR}/engine.i)
|
GNC_ADD_SWIG_COMMAND (${SWIG_ENGINE_C} ${CMAKE_CURRENT_SOURCE_DIR}/engine.i)
|
||||||
|
|
||||||
# Workaround to create a very simple gncla-dir.h file
|
# Workaround to create a very simple gncla-dir.h file
|
||||||
FILE (WRITE ${CMAKE_CURRENT_BINARY_DIR}/gncla-dir.h "
|
FILE (WRITE ${CMAKE_CURRENT_BINARY_DIR}/gncla-dir.h.tmp "
|
||||||
#define PREFIX \"${CMAKE_INSTALL_PREFIX}\"
|
#define PREFIX \"${CMAKE_INSTALL_PREFIX}\"
|
||||||
#define DATADIR \"${CMAKE_INSTALL_PREFIX}/share\"
|
#define DATADIR \"${CMAKE_INSTALL_PREFIX}/share\"
|
||||||
#define SYSCONFDIR \"${CMAKE_INSTALL_PREFIX}/etc\"
|
#define SYSCONFDIR \"${CMAKE_INSTALL_PREFIX}/etc\"
|
||||||
#define LIBDIR \"${CMAKE_INSTALL_PREFIX}/lib\"
|
#define LIBDIR \"${CMAKE_INSTALL_PREFIX}/lib\"
|
||||||
#define LOCALE_DATADIRNAME \"share\"
|
#define LOCALE_DATADIRNAME \"share\"
|
||||||
")
|
")
|
||||||
|
# Let cmake copy the created file only on changes.
|
||||||
|
CONFIGURE_FILE (${CMAKE_CURRENT_BINARY_DIR}/gncla-dir.h.tmp ${CMAKE_CURRENT_BINARY_DIR}/gncla-dir.h COPYONLY)
|
||||||
|
|
||||||
|
# Command to generate the iso-4217-currencies.c file
|
||||||
|
SET (ISO_4217_C ${CMAKE_CURRENT_BINARY_DIR}/iso-4217-currencies.c)
|
||||||
|
ADD_CUSTOM_COMMAND (
|
||||||
|
OUTPUT ${ISO_4217_C}
|
||||||
|
DEPENDS iso-4217-currencies.scm iso-currencies-to-c
|
||||||
|
COMMAND
|
||||||
|
GUILE_LOAD_PATH=@GNC_SRFI_LOAD_PATH@:${GUILE_LOAD_PATH}
|
||||||
|
srcdir=${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
${GUILE_EXECUTABLE} -s ${CMAKE_CURRENT_SOURCE_DIR}/iso-currencies-to-c
|
||||||
|
)
|
||||||
|
# Add dependency on iso-4217-currencies.c
|
||||||
|
SET_SOURCE_FILES_PROPERTIES (gnc-commodity.c PROPERTIES OBJECT_DEPENDS ${ISO_4217_C})
|
||||||
|
|
||||||
|
# Command to generate the swig-runtime.h header
|
||||||
|
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}
|
||||||
|
)
|
||||||
|
# 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 (libgncmod_engine_SOURCES
|
SET (libgncmod_engine_SOURCES
|
||||||
Account.c
|
Account.c
|
||||||
@@ -89,7 +112,7 @@ SET (libgncmod_engine_SOURCES
|
|||||||
cashobjects.c
|
cashobjects.c
|
||||||
gnc-associate-account.c
|
gnc-associate-account.c
|
||||||
gnc-budget.c
|
gnc-budget.c
|
||||||
# gnc-commodity.c
|
gnc-commodity.c
|
||||||
gnc-engine.c
|
gnc-engine.c
|
||||||
gnc-filepath-utils.c
|
gnc-filepath-utils.c
|
||||||
gnc-hooks.c
|
gnc-hooks.c
|
||||||
@@ -110,6 +133,3 @@ ADD_LIBRARY (engine
|
|||||||
${libgncmod_engine_SOURCES}
|
${libgncmod_engine_SOURCES}
|
||||||
${libgncmod_engine_HEADERS}
|
${libgncmod_engine_HEADERS}
|
||||||
)
|
)
|
||||||
|
|
||||||
# We depend on the swig-runtime-h target
|
|
||||||
ADD_DEPENDENCIES (engine swig-runtime-h)
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.module\")
|
|||||||
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
|
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
|
||||||
INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
|
INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
|
||||||
INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
|
INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
|
||||||
|
INCLUDE_DIRECTORIES (${LIBGUILE_INCLUDE_PATH})
|
||||||
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR} ) # for config.h
|
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR} ) # for config.h
|
||||||
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}) # for gnc-ui.h
|
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}) # for gnc-ui.h
|
||||||
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}) # when building swig-gnc-module.c
|
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}) # when building swig-gnc-module.c
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
# CMakeLists.txt for src/libqof
|
# CMakeLists.txt for src/libqof
|
||||||
|
|
||||||
# EXPERIMENTAL! This is just a trial of how far we can get for a cmake
|
|
||||||
# build system.
|
|
||||||
|
|
||||||
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"qof\")
|
ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"qof\")
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
|
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
|
||||||
@@ -13,9 +10,12 @@ INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/../lib/libc) # for strptime.h
|
|||||||
|
|
||||||
|
|
||||||
# Workaround to create a very simple gncla-dir.h file
|
# Workaround to create a very simple gncla-dir.h file
|
||||||
FILE (WRITE ${CMAKE_CURRENT_BINARY_DIR}/qofla-dir.h "
|
FILE (WRITE ${CMAKE_CURRENT_BINARY_DIR}/qofla-dir.h.tmp "
|
||||||
#define QOF_LIB_DIR \"${CMAKE_INSTALL_PREFIX}/lib/gnucash\"
|
#define QOF_LIB_DIR \"${CMAKE_INSTALL_PREFIX}/lib/gnucash\"
|
||||||
")
|
")
|
||||||
|
# Let cmake copy the created file only on changes.
|
||||||
|
CONFIGURE_FILE (${CMAKE_CURRENT_BINARY_DIR}/qofla-dir.h.tmp ${CMAKE_CURRENT_BINARY_DIR}/qofla-dir.h COPYONLY)
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR}) # for qofla-dir.h
|
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR}) # for qofla-dir.h
|
||||||
|
|
||||||
SET (libgnc_qof_SOURCES
|
SET (libgnc_qof_SOURCES
|
||||||
@@ -42,10 +42,15 @@ SET (libgnc_qof_SOURCES
|
|||||||
qof/qofbookmerge.c
|
qof/qofbookmerge.c
|
||||||
)
|
)
|
||||||
IF (WIN32)
|
IF (WIN32)
|
||||||
SET (libgnc_qof_SOURCES ${libgnc_qof_SOURCES} qof/qof-win32.c)
|
SET (libgnc_qof_SOURCES ${libgnc_qof_SOURCES}
|
||||||
|
qof/qof-win32.c
|
||||||
|
../../lib/libc/strptime.c
|
||||||
|
../../lib/libc/localtime_r.c
|
||||||
|
../../lib/libc/gmtime_r.c
|
||||||
|
)
|
||||||
ENDIF (WIN32)
|
ENDIF (WIN32)
|
||||||
|
|
||||||
SET (qofinclude_HEADERS
|
SET (libgnc_qof_HEADERS
|
||||||
qof/gnc-date.h
|
qof/gnc-date.h
|
||||||
qof/gnc-date-p.h
|
qof/gnc-date-p.h
|
||||||
qof/gnc-numeric.h
|
qof/gnc-numeric.h
|
||||||
@@ -80,28 +85,5 @@ SET (qofinclude_HEADERS
|
|||||||
|
|
||||||
ADD_LIBRARY (qof
|
ADD_LIBRARY (qof
|
||||||
${libgnc_qof_SOURCES}
|
${libgnc_qof_SOURCES}
|
||||||
${qofinclude_HEADERS}
|
${libgnc_qof_HEADERS}
|
||||||
)
|
)
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES (qof ${GTK_LIBRARIES})
|
|
||||||
|
|
||||||
# libgnc_qof_la_LIBADD= $(REGEX_LIBS)
|
|
||||||
|
|
||||||
#nodist_qofinclude_HEADERS = \
|
|
||||||
# qofla-dir.h
|
|
||||||
|
|
||||||
#noinst_HEADERS = \
|
|
||||||
# md5.h \
|
|
||||||
# qofclass-p.h \
|
|
||||||
# qofmath128.h \
|
|
||||||
# qofquery-p.h \
|
|
||||||
# qofquery-deserial.h \
|
|
||||||
# qofquery-serialize.h \
|
|
||||||
# qofbook-p.h \
|
|
||||||
# qofevent-p.h \
|
|
||||||
# qofobject-p.h \
|
|
||||||
# qofquerycore-p.h \
|
|
||||||
# qofsession-p.h
|
|
||||||
|
|
||||||
#EXTRA_DIST = \
|
|
||||||
# qofmath128.c
|
|
||||||
|
|||||||
33
src/test-core/CMakeLists.txt
Normal file
33
src/test-core/CMakeLists.txt
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# CMakeLists.txt for src/test-core
|
||||||
|
|
||||||
|
|
||||||
|
# A test executable
|
||||||
|
LINK_DIRECTORIES (${GLIB2_LIBRARY_DIRS}
|
||||||
|
${GMODULE_LIBRARY_DIRS}
|
||||||
|
${GOBJECT_LIBRARY_DIRS}
|
||||||
|
${GTHREAD_LIBRARY_DIRS}
|
||||||
|
${GCONF2_LIBRARY_DIRS}
|
||||||
|
)
|
||||||
|
ADD_EXECUTABLE (test-main
|
||||||
|
test-main.c
|
||||||
|
)
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
|
||||||
|
INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
|
||||||
|
INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
|
||||||
|
INCLUDE_DIRECTORIES (${LIBGUILE_INCLUDE_PATH})
|
||||||
|
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR} ) # for config.h
|
||||||
|
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}) # for gnc-ui.h
|
||||||
|
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/libqof/qof) # for qof.h
|
||||||
|
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/gnc-module) # for gnc-glib-utils.h
|
||||||
|
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/core-utils) # for gnc-glib-utils.h
|
||||||
|
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/engine) # for gnc-glib-utils.h
|
||||||
|
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/engine) # for swig-runtime.h
|
||||||
|
|
||||||
|
TARGET_LINK_LIBRARIES (test-main engine gnc-module core-utils qof)
|
||||||
|
TARGET_LINK_LIBRARIES (test-main ${GCONF_LIBRARIES})
|
||||||
|
TARGET_LINK_LIBRARIES (test-main ${GTHREAD_LIBRARIES} ${GOBJECT_LIBRARIES} ${GMODULE_LIBRARIES} ${GLIB2_LIBRARIES})
|
||||||
|
TARGET_LINK_LIBRARIES (test-main ${LIBGUILE_LIBRARIES})
|
||||||
|
IF (WIN32)
|
||||||
|
TARGET_LINK_LIBRARIES (test-main ${LIBINTL_LIBRARY} ${REGEX_LIBRARY})
|
||||||
|
ENDIF (WIN32)
|
||||||
166
src/test-core/test-main.c
Normal file
166
src/test-core/test-main.c
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
/*
|
||||||
|
* gnucash-bin.c -- The program entry point for GnuCash
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006 Chris Shoemaker <c.shoemaker@cox.net>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 2 of
|
||||||
|
* the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, contact:
|
||||||
|
*
|
||||||
|
* Free Software Foundation Voice: +1-617-542-5942
|
||||||
|
* 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652
|
||||||
|
* Boston, MA 02110-1301, USA gnu@gnu.org
|
||||||
|
*/
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <libguile.h>
|
||||||
|
#include <glib/gi18n.h>
|
||||||
|
#include <glib.h>
|
||||||
|
#include "gnc-module.h"
|
||||||
|
#include "gnc-path.h"
|
||||||
|
#include "binreloc.h"
|
||||||
|
/* #include "gnc-version.h" */
|
||||||
|
#include "gnc-engine.h"
|
||||||
|
#include "gnc-filepath-utils.h"
|
||||||
|
#include "gnc-hooks.h"
|
||||||
|
#include "gnc-commodity.h"
|
||||||
|
#include "gnc-main.h"
|
||||||
|
#include "gnc-session.h"
|
||||||
|
#include "engine-helpers.h"
|
||||||
|
#include "swig-runtime.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_GETTEXT
|
||||||
|
# include <libintl.h>
|
||||||
|
# include <locale.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define APP_GNUCASH "/apps/gnucash"
|
||||||
|
|
||||||
|
/* GNUCASH_SVN is defined whenever we're building from an SVN tree */
|
||||||
|
#ifdef GNUCASH_SVN
|
||||||
|
static int is_development_version = TRUE;
|
||||||
|
#else
|
||||||
|
static int is_development_version = FALSE;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static gchar **log_flags = NULL;
|
||||||
|
static gchar *log_to_filename = NULL;
|
||||||
|
|
||||||
|
static void
|
||||||
|
gnc_log_init()
|
||||||
|
{
|
||||||
|
if (log_to_filename != NULL)
|
||||||
|
{
|
||||||
|
qof_log_init_filename_special(log_to_filename);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* initialize logging to our file. */
|
||||||
|
gchar *tracefilename;
|
||||||
|
tracefilename = g_build_filename(g_get_tmp_dir(), "gnucash.trace",
|
||||||
|
(gchar *)NULL);
|
||||||
|
qof_log_init_filename(tracefilename);
|
||||||
|
g_free(tracefilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
// set a reasonable default.
|
||||||
|
qof_log_set_default(QOF_LOG_WARNING);
|
||||||
|
|
||||||
|
gnc_log_default();
|
||||||
|
|
||||||
|
if (gnc_is_debugging())
|
||||||
|
{
|
||||||
|
qof_log_set_level("", QOF_LOG_INFO);
|
||||||
|
qof_log_set_level("qof", QOF_LOG_INFO);
|
||||||
|
qof_log_set_level("gnc", QOF_LOG_INFO);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
gchar *log_config_filename;
|
||||||
|
log_config_filename = gnc_build_dotgnucash_path("log.conf");
|
||||||
|
if (g_file_test(log_config_filename, G_FILE_TEST_EXISTS))
|
||||||
|
qof_log_parse_log_config(log_config_filename);
|
||||||
|
g_free(log_config_filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (log_flags != NULL)
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
for (; log_flags[i] != NULL; i++)
|
||||||
|
{
|
||||||
|
QofLogLevel level;
|
||||||
|
gchar **parts = NULL;
|
||||||
|
|
||||||
|
gchar *log_opt = log_flags[i];
|
||||||
|
parts = g_strsplit(log_opt, "=", 2);
|
||||||
|
if (parts == NULL || parts[0] == NULL || parts[1] == NULL)
|
||||||
|
{
|
||||||
|
g_warning("string [%s] not parseable", log_opt);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
level = qof_log_level_from_string(parts[1]);
|
||||||
|
qof_log_set_level(parts[0], level);
|
||||||
|
g_strfreev(parts);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char ** argv)
|
||||||
|
{
|
||||||
|
#if !defined(G_THREADS_ENABLED) || defined(G_THREADS_IMPL_NONE)
|
||||||
|
# error "No GLib thread implementation available!"
|
||||||
|
#endif
|
||||||
|
g_thread_init(NULL);
|
||||||
|
|
||||||
|
#ifdef ENABLE_BINRELOC
|
||||||
|
{
|
||||||
|
GError *binreloc_error = NULL;
|
||||||
|
if (!gbr_init(&binreloc_error))
|
||||||
|
{
|
||||||
|
g_print("main: Error on gbr_init: %s\n", binreloc_error->message);
|
||||||
|
g_error_free(binreloc_error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
g_message("main: binreloc relocation support was disabled at configure time.\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_GETTEXT
|
||||||
|
{
|
||||||
|
gchar *localedir = gnc_path_get_localedir();
|
||||||
|
/* setlocale(LC_ALL, ""); is already called by gtk_set_locale()
|
||||||
|
via gtk_init(). */
|
||||||
|
bindtextdomain(GETTEXT_PACKAGE, localedir);
|
||||||
|
textdomain(GETTEXT_PACKAGE);
|
||||||
|
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
|
||||||
|
g_free(localedir);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
qof_log_init();
|
||||||
|
qof_log_set_default(QOF_LOG_INFO);
|
||||||
|
|
||||||
|
gnc_log_init();
|
||||||
|
|
||||||
|
gnc_module_system_init();
|
||||||
|
|
||||||
|
/* gnc_gnome_init (argc, argv, VERSION); */
|
||||||
|
/* gnc_gui_init(); */
|
||||||
|
/* scm_boot_guile(argc, argv, inner_main, 0); */
|
||||||
|
exit(0); /* never reached */
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user