Cutecash: Fix config.h creation by using the #cmakedefine feature of CONFIGURE_FILE.

Finally, config.h will only be re-created if anything has changed, thus
reducing re-compiling to a minimum. This was done with instructions from
http://www.cmake.org/Wiki/CMake:How_To_Write_Platform_Checks ; however,
more of those checks (like CheckFunctionExists etc) don't work as easily as
CheckHeaderExists, so I left it at that.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@19127 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Christian Stimming 2010-05-06 11:40:55 +00:00
parent d4419cfd14
commit 6afded02b0
3 changed files with 170 additions and 113 deletions

View File

@ -6,11 +6,17 @@
CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
PROJECT (cutecash)
# Version number of cutecash
SET (CUTECASH_VERSION_MAJOR "0")
SET (CUTECASH_VERSION_MINOR "1")
SET (CUTECASH_VERSION_PATCH "0")
# Extra cmake macros
SET (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/src/cmake_modules;${CMAKE_MODULE_PATH}")
INCLUDE (MacroAppendForeach)
INCLUDE (MacroAddSourceFileCompileFlags)
INCLUDE (GncAddSwigCommand)
INCLUDE (CheckIncludeFiles)
# ############################################################
@ -126,10 +132,10 @@ ADD_SUBDIRECTORY (src)
SET (CPACK_PACKAGE_NAME "Cutecash")
SET (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Cutecash Free Finance Software")
SET (CPACK_PACKAGE_VERSION_MAJOR ${CUTECASH_VERSION_MAJOR})
SET (CPACK_PACKAGE_VERSION_MINOR ${CUTECASH_VERSION_MINOR})
SET (CPACK_PACKAGE_VERSION_PATCH ${CUTECASH_VERSION_PATCH})
SET (CPACK_PACKAGE_VENDOR "Christian Stimming")
SET (CPACK_PACKAGE_VERSION_MAJOR "0")
SET (CPACK_PACKAGE_VERSION_MINOR "1")
SET (CPACK_PACKAGE_VERSION_PATCH "0")
SET (CPACK_SOURCE_IGNORE_FILES "/\\\\.svn/;/\\\\.git/;.*~;build.*;html;Debug;Release")
SET (CPACK_STRIP_FILES "bin/cutecash")
#SET (CPACK_PACKAGE_EXECUTABLES "bin/carclient")

View File

@ -3,130 +3,83 @@
# ############################################################
# Create config.h
ADD_DEFINITIONS (-DHAVE_CONFIG_H)
SET (CONFIG_H ${CMAKE_CURRENT_BINARY_DIR}/config.h)
FILE (WRITE ${CONFIG_H} "#define PACKAGE \"gnucash\"\n")
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 HAVE_TOWUPPER 1
#define QOF_DISABLE_DEPRECATED 1
#define GNC_NO_LOADABLE_MODULES 1
")
SET (GETTEXT_PACKAGE "gnucash")
IF (WIN32)
FILE (APPEND ${CONFIG_H} "
#define HAVE_SCANF_I64D 1
#define HAVE_HTMLHELPW 1
#define OS_WIN32 1
")
SET (HAVE_SCANF_I64D 1)
SET (HAVE_HTMLHELPW 1)
ENDIF (WIN32)
IF (MINGW)
FILE (APPEND ${CONFIG_H} "
#define HAVE_PUTENV 1
")
SET (HAVE_PUTENV 1)
ENDIF (MINGW)
CHECK_INCLUDE_FILES (X11/Xlib.h HAVE_X11_XLIB_H)
CHECK_INCLUDE_FILES (dirent.h HAVE_DIRENT_H)
CHECK_INCLUDE_FILES (dlfcn.h HAVE_DLFCN_H)
CHECK_INCLUDE_FILES (glob.h HAVE_GLOB_H)
CHECK_INCLUDE_FILES (inttypes.h HAVE_INTTYPES_H)
CHECK_INCLUDE_FILES (limits.h HAVE_LIMITS_H)
CHECK_INCLUDE_FILES (locale.h HAVE_LOCALE_H)
CHECK_INCLUDE_FILES (memory.h HAVE_MEMORY_H)
CHECK_INCLUDE_FILES (stdint.h HAVE_STDINT_H)
CHECK_INCLUDE_FILES (stdlib.h HAVE_STDLIB_H)
CHECK_INCLUDE_FILES (string.h HAVE_STRING_H)
CHECK_INCLUDE_FILES (strings.h HAVE_STRINGS_H)
CHECK_INCLUDE_FILES (sys/stat.h HAVE_SYS_STAT_H)
CHECK_INCLUDE_FILES (sys/time.h HAVE_SYS_TIME_H)
CHECK_INCLUDE_FILES (sys/times.h HAVE_SYS_TIMES_H)
CHECK_INCLUDE_FILES (sys/types.h HAVE_SYS_TYPES_H)
CHECK_INCLUDE_FILES (sys/wait.h HAVE_SYS_WAIT_H)
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 (UNIX OR MINGW)
FILE (APPEND ${CONFIG_H} "
#define GETTEXT_PACKAGE \"gnucash\"
#define HAVE_BIND_TEXTDOMAIN_CODESET 1
#define HAVE_DIRENT_H 1
#define HAVE_DCGETTEXT 1
#define HAVE_SYS_TIME_H 1
#define HAVE_UNISTD_H 1
#define HAVE_GETTEXT 1
#define HAVE_GETTIMEOFDAY 1
#define HAVE_GUILE 1
#define HAVE_INTTYPES_H 1
#define HAVE_LIBM 1
#define HAVE_LIMITS_H 1
#define HAVE_LOCALE_H 1
#define HAVE_MEMCPY 1
#define HAVE_MEMORY_H 1
#define HAVE_STDINT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRINGS_H 1
#define HAVE_STRING_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_SYS_TIME_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_UNISTD_H 1
#define HAVE_WCTYPE_H 1
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
# define _ALL_SOURCE 1
#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif
/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
# define _POSIX_PTHREAD_SEMANTICS 1
#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
# define _TANDEM_SOURCE 1
#endif
/* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__
# define __EXTENSIONS__ 1
#endif
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
/* # undef WORDS_BIGENDIAN */
# endif
#endif
")
SET (HAVE_BIND_TEXTDOMAIN_CODESET 1)
SET (HAVE_DCGETTEXT 1)
SET (HAVE_GETTEXT 1)
SET (HAVE_GETTIMEOFDAY 1)
SET (HAVE_GUILE 1)
SET (HAVE_LIBM 1)
SET (HAVE_MEMCPY 1)
SET (STDC_HEADERS 1)
SET (_ALL_SOURCE 1)
SET (_GNU_SOURCE 1)
SET (_POSIX_PTHREAD_SEMANTICS 1)
SET (_TANDEM_SOURCE 1)
SET (__EXTENSIONS__ 1)
SET (WORDS_BIGENDIAN 1)
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
")
SET (HAVE_CHOWN 1)
SET (HAVE_DLERROR 1)
SET (HAVE_GETHOSTID 1)
SET (HAVE_GETHOSTNAME 1)
SET (HAVE_GETPPID 1)
SET (HAVE_GETUID 1)
SET (HAVE_GMTIME_R 1)
SET (HAVE_LANGINFO_D_FMT 1)
SET (HAVE_LC_MESSAGES 1)
SET (HAVE_LIBPTHREAD 1)
SET (HAVE_LINK 1)
SET (HAVE_LOCALTIME_R 1)
SET (HAVE_PTHREAD_MUTEX_INIT 1)
SET (HAVE_SCANF_LLD 1)
SET (HAVE_SETENV 1)
SET (HAVE_STPCPY 1)
SET (HAVE_STRPTIME 1)
SET (HAVE_STRUCT_TM_GMTOFF 1)
SET (HAVE_TIMEGM 1)
ENDIF (UNIX)
ADD_DEFINITIONS (-DHAVE_CONFIG_H)
SET (CONFIG_H ${CMAKE_CURRENT_BINARY_DIR}/config.h)
CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake.in ${CONFIG_H})
# ############################################################
# The subdirectories

98
src/config.h.cmake.in Normal file
View File

@ -0,0 +1,98 @@
/* 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 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
/* WIN32 */
#cmakedefine HAVE_HTMLHELPW 1
#cmakedefine OS_WIN32 1
/* Unix or Mingw or Win32 */
#define GETTEXT_PACKAGE "@GETTEXT_PACKAGE@"
#cmakedefine HAVE_BIND_TEXTDOMAIN_CODESET 1
#cmakedefine HAVE_CHOWN 1
#cmakedefine HAVE_DCGETTEXT 1
#cmakedefine HAVE_DIRENT_H 1
#cmakedefine HAVE_DLERROR 1
#cmakedefine HAVE_DLFCN_H 1
#cmakedefine HAVE_GETHOSTID 1
#cmakedefine HAVE_GETHOSTNAME 1
#cmakedefine HAVE_GETPPID 1
#cmakedefine HAVE_GETTEXT 1
#cmakedefine HAVE_GETTIMEOFDAY 1
#cmakedefine HAVE_GETUID 1
#cmakedefine HAVE_GLOB_H 1
#cmakedefine HAVE_GMTIME_R 1
#cmakedefine HAVE_GUILE 1
#cmakedefine HAVE_INTTYPES_H 1
#cmakedefine HAVE_LANGINFO_D_FMT 1
#cmakedefine HAVE_LC_MESSAGES 1
#cmakedefine HAVE_LIBM 1
#cmakedefine HAVE_LIBPTHREAD 1
#cmakedefine HAVE_LIMITS_H 1
#cmakedefine HAVE_LINK 1
#cmakedefine HAVE_LOCALE_H 1
#cmakedefine HAVE_LOCALTIME_R 1
#cmakedefine HAVE_MEMCPY 1
#cmakedefine HAVE_MEMORY_H 1
#cmakedefine HAVE_PTHREAD_MUTEX_INIT 1
#cmakedefine HAVE_PUTENV 1
#cmakedefine HAVE_SCANF_I64D 1
#cmakedefine HAVE_SCANF_LLD 1
#cmakedefine HAVE_SETENV 1
#cmakedefine HAVE_STDINT_H 1
#cmakedefine HAVE_STDLIB_H 1
#cmakedefine HAVE_STPCPY 1
#cmakedefine HAVE_STRINGS_H 1
#cmakedefine HAVE_STRING_H 1
#cmakedefine HAVE_STRPTIME 1
#cmakedefine HAVE_STRUCT_TM_GMTOFF 1
#cmakedefine HAVE_SYS_STAT_H 1
#cmakedefine HAVE_SYS_TIMES_H 1
#cmakedefine HAVE_SYS_TIME_H 1
#cmakedefine HAVE_SYS_TYPES_H 1
#cmakedefine HAVE_SYS_WAIT_H 1
#cmakedefine HAVE_TIMEGM 1
#cmakedefine HAVE_UNISTD_H 1
#cmakedefine HAVE_UTMP_H 1
#cmakedefine HAVE_WCTYPE_H 1
#cmakedefine HAVE_X11_XLIB_H 1
/* Define to 1 if you have the ANSI C header files. */
#cmakedefine STDC_HEADERS 1
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
#cmakedefine _ALL_SOURCE 1
#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
#cmakedefine _GNU_SOURCE 1
#endif
/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
#cmakedefine _POSIX_PTHREAD_SEMANTICS 1
#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
#cmakedefine _TANDEM_SOURCE 1
#endif
/* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__
#cmakedefine __EXTENSIONS__ 1
#endif
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
#cmakedefine WORDS_BIGENDIAN 1
# endif
#endif