r19127 - gnucash/trunk - Cutecash: Fix config.h creation by using the #cmakedefine feature of CONFIGURE_FILE.

Christian Stimming cstim at code.gnucash.org
Thu May 6 07:40:55 EDT 2010


Author: cstim
Date: 2010-05-06 07:40:55 -0400 (Thu, 06 May 2010)
New Revision: 19127
Trac: http://svn.gnucash.org/trac/changeset/19127

Added:
   gnucash/trunk/src/config.h.cmake.in
Modified:
   gnucash/trunk/CMakeLists.txt
   gnucash/trunk/src/CMakeLists.txt
Log:
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.

Modified: gnucash/trunk/CMakeLists.txt
===================================================================
--- gnucash/trunk/CMakeLists.txt	2010-05-06 11:40:41 UTC (rev 19126)
+++ gnucash/trunk/CMakeLists.txt	2010-05-06 11:40:55 UTC (rev 19127)
@@ -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 @@
 
 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")

Modified: gnucash/trunk/src/CMakeLists.txt
===================================================================
--- gnucash/trunk/src/CMakeLists.txt	2010-05-06 11:40:41 UTC (rev 19126)
+++ gnucash/trunk/src/CMakeLists.txt	2010-05-06 11:40:55 UTC (rev 19127)
@@ -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")
+SET (GETTEXT_PACKAGE "gnucash")
 
-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
-")
-
 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)
 
-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
+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)
 
-/* 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
-")
+IF (UNIX OR MINGW)
+  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

Added: gnucash/trunk/src/config.h.cmake.in
===================================================================
--- gnucash/trunk/src/config.h.cmake.in	                        (rev 0)
+++ gnucash/trunk/src/config.h.cmake.in	2010-05-06 11:40:55 UTC (rev 19127)
@@ -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 at .@CUTECASH_VERSION_MINOR at .@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



More information about the gnucash-changes mailing list