# CMakeLists.txt for src/

# ############################################################

# Create config.h

SET (GETTEXT_PACKAGE "gnucash")

SET(GNOME 1)

IF (WIN32)
  SET (HAVE_SCANF_I64D 1)
  SET (HAVE_HTMLHELPW 1)
ENDIF (WIN32)

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 (NOT DISABLE_NLS)
SET(ENABLE_NLS 1)
ENDIF(NOT DISABLE_NLS)

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)
  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)
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)
  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_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(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()

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)
CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake.in ${CONFIG_H})

IF (BUILDING_FROM_VCS)
  SET (SWIG_RUNTIME_H ${CMAKE_CURRENT_BINARY_DIR}/swig-runtime.h)
ELSE()
  SET (SWIG_RUNTIME_H ${CMAKE_CURRENT_SOURCE_DIR}/swig-runtime.h)
ENDIF()


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)
ADD_SUBDIRECTORY (gnc-module)
ADD_SUBDIRECTORY (engine)
ADD_SUBDIRECTORY (backend)
ADD_SUBDIRECTORY (app-utils)
ADD_SUBDIRECTORY (import-export)

IF (WITH_GNUCASH)
  ADD_SUBDIRECTORY (bin)
  ADD_SUBDIRECTORY (business)
  ADD_SUBDIRECTORY (cmake_modules)
  ADD_SUBDIRECTORY (debug)
  ADD_SUBDIRECTORY (doc)
  ADD_SUBDIRECTORY (gnome)
  ADD_SUBDIRECTORY (gnome-utils)
  ADD_SUBDIRECTORY (gnome-search)
  ADD_SUBDIRECTORY (html)
  ADD_SUBDIRECTORY (optional)
  ADD_SUBDIRECTORY (plugins)
  ADD_SUBDIRECTORY (pixmaps)
  ADD_SUBDIRECTORY (python)
  ADD_SUBDIRECTORY (quotes)
  ADD_SUBDIRECTORY (register)
  ADD_SUBDIRECTORY(report)
  ADD_SUBDIRECTORY (scm)
  ADD_SUBDIRECTORY (tax)
  ADD_SUBDIRECTORY (test-core)
ENDIF (WITH_GNUCASH)

IF (WITH_CUTECASH)
  ADD_SUBDIRECTORY (gnc)
ENDIF (WITH_CUTECASH)

SET(src_EXTRA_DIST
        base-typemaps.i
        config.h.cmake.in
        gnc-test-env.pl
        guile-mappings.h
        platform.h
        README
        README.modules)

SET_LOCAL_DIST(src_DIST_local CMakeLists.txt Makefile.am ${src_EXTRA_DIST})

SET(src_DIST ${src_DIST_local} ${app_utils_DIST} ${backend_DIST} ${bin_DIST} ${business_DIST} ${cmake_modules_DIST}
             ${core_utils_DIST} ${debug_DIST} ${doc_DIST} ${engine_DIST} ${gnc_module_DIST} ${gnome_DIST} ${gnome_search_DIST}
             ${gnome_utils_DIST} ${html_DIST} ${import_export_DIST} ${libqof_DIST} ${optional_DIST} ${plugins_DIST} ${pixmaps_DIST} ${python_DIST}
             ${quotes_DIST} ${register_DIST} ${report_DIST} ${scm_DIST} ${tax_DIST} ${test_core_DIST} PARENT_SCOPE)