diff --git a/CMakeLists.txt b/CMakeLists.txt index 563a4a656a..c8016d5131 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -135,12 +135,13 @@ IF (WIN32) # 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(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) + #SET(PKG_CONFIG_EXECUTABLE ${CMAKE_PREFIX_PATH}/gnome/bin/pkg-config.exe) + SET(SWIG_EXECUTABLE swig) + #SET(SWIG_EXECUTABLE ${CMAKE_PREFIX_PATH}/swig/swig.exe) + SET(REGEX_INCLUDE_PATH ${CMAKE_PREFIX_PATH}/mingw32/include) + SET(REGEX_LDFLAGS "-L${CMAKE_PREFIX_PATH}/mingw32/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) #Prevent creating a console window on startup. @@ -226,6 +227,7 @@ FIND_PATH (REGEX_INCLUDE_PATH NAMES regex.h PATHS /usr/include /opt/gnome/include) FIND_LIBRARY (REGEX_LIBRARY NAMES regex) IF (WIN32) + message(STATUS "Looking for htmlhelp.h and htmlhelp.a in ${HTMLHELP_DIR}") FIND_PATH (HTMLHELP_INCLUDE_PATH NAMES htmlhelp.h HINTS ${HTMLHELP_DIR}/include) FIND_LIBRARY (HTMLHELP_LIBRARY htmlhelp HINTS ${HTMLHELP_DIR}/lib) ENDIF (WIN32) @@ -708,7 +710,7 @@ INSTALL(CODE #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) + SET(MINGW_DLLS ${CMAKE_PREFIX_PATH}/mingw32/bin/libstdc++-6.dll ${CMAKE_PREFIX_PATH}/mingw32/bin/libgcc_s_dw2-1.dll) INSTALL(PROGRAMS ${MINGW_DLLS} DESTINATION bin) FILE(COPY ${MINGW_DLLS} DESTINATION ${BINDIR_BUILD} # Do permissions matter for windows? diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 17f366714f..271ae3916f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -9,11 +9,17 @@ SET (GETTEXT_PACKAGE "gnucash") SET(GNOME 1) IF (WIN32) - SET (HAVE_SCANF_I64D 1) + IF (MINGW) + SET (HAVE_SCANF_LLD 1) + ELSE () + SET (HAVE_SCANF_I64D 1) + ENDIF () SET (HAVE_HTMLHELPW 1) ENDIF (WIN32) -CHECK_INCLUDE_FILES (X11/Xlib.h HAVE_X11_XLIB_H) +IF (NOT WIN32) + CHECK_INCLUDE_FILES (X11/Xlib.h HAVE_X11_XLIB_H) +ENDIF (WIN32) CHECK_INCLUDE_FILES (dirent.h HAVE_DIRENT_H) CHECK_INCLUDE_FILES (dlfcn.h HAVE_DLFCN_H) CHECK_INCLUDE_FILES (glob.h HAVE_GLOB_H) @@ -182,4 +188,4 @@ 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) \ No newline at end of file + ${quotes_DIST} ${register_DIST} ${report_DIST} ${scm_DIST} ${tax_DIST} ${test_core_DIST} PARENT_SCOPE) diff --git a/src/app-utils/gnc-ui-util.c b/src/app-utils/gnc-ui-util.c index 05abd1c6f8..1e2eaa4011 100644 --- a/src/app-utils/gnc-ui-util.c +++ b/src/app-utils/gnc-ui-util.c @@ -22,8 +22,10 @@ #include "config.h" +#ifdef __MINGW32__ +#define __USE_MINGW_ANSI_STDIO 1 +#endif #include "gnc-ui-util.h" - #include #include #include diff --git a/src/app-utils/guile-util.c b/src/app-utils/guile-util.c index 48d9ea4b8b..24c7b7fdcd 100644 --- a/src/app-utils/guile-util.c +++ b/src/app-utils/guile-util.c @@ -20,6 +20,7 @@ #include "config.h" +#include "swig-runtime.h" #include #if PLATFORM(WINDOWS) #include @@ -28,7 +29,6 @@ #include #include #include -#include "swig-runtime.h" #include #include #ifdef HAVE_UNISTD_H diff --git a/src/backend/xml/gnc-backend-xml.cpp b/src/backend/xml/gnc-backend-xml.cpp index d3e2cb208e..9acbee830b 100644 --- a/src/backend/xml/gnc-backend-xml.cpp +++ b/src/backend/xml/gnc-backend-xml.cpp @@ -116,7 +116,7 @@ struct QofXmlBackendProvider : public QofBackendProvider bool QofXmlBackendProvider::type_check (const char *uri) { - struct stat sbuf; + GStatBuf sbuf; int rc; FILE* t; gchar* filename; diff --git a/src/backend/xml/gnc-xml-backend.cpp b/src/backend/xml/gnc-xml-backend.cpp index 88e34fe064..2c0ca2197d 100644 --- a/src/backend/xml/gnc-xml-backend.cpp +++ b/src/backend/xml/gnc-xml-backend.cpp @@ -52,7 +52,7 @@ static QofLogModule log_module = GNC_MOD_BACKEND; bool GncXmlBackend::check_path (const char* fullpath, bool create) { - struct stat statbuf; + GStatBuf statbuf; char* dirname = g_path_get_dirname (fullpath); /* Again check whether the directory can be accessed */ auto rc = g_stat (dirname, &statbuf); @@ -333,7 +333,7 @@ GncXmlBackend::save_may_clobber_data() { if (m_fullpath.empty()) return false; - struct stat statbuf; + GStatBuf statbuf; auto rc = g_stat (m_fullpath.c_str(), &statbuf); return rc == 0; } @@ -397,7 +397,7 @@ GncXmlBackend::write_to_file (bool make_backup) gnc_prefs_get_file_save_compressed ())) { /* Record the file's permissions before g_unlinking it */ - struct stat statbuf; + GStatBuf statbuf; auto rc = g_stat (m_fullpath.c_str(), &statbuf); if (rc == 0) { @@ -619,7 +619,7 @@ GncXmlBackend::link_or_make_backup (const std::string& orig, bool GncXmlBackend::get_file_lock () { - struct stat statbuf; + GStatBuf statbuf; #ifndef G_OS_WIN32 char* pathbuf = NULL, *tmpbuf = NULL; size_t pathbuf_size = 0; @@ -739,7 +739,7 @@ GncXmlBackend::get_file_lock () bool GncXmlBackend::backup_file() { - struct stat statbuf; + GStatBuf statbuf; auto datafile = m_fullpath.c_str(); @@ -773,7 +773,7 @@ GncXmlBackend::backup_file() void GncXmlBackend::remove_old_files () { - struct stat lockstatbuf, statbuf; + GStatBuf lockstatbuf, statbuf; if (g_stat (m_lockfile.c_str(), &lockstatbuf) != 0) return; diff --git a/src/core-utils/gnc-filepath-utils.c b/src/core-utils/gnc-filepath-utils.c index 0462d8126a..3048297cbe 100644 --- a/src/core-utils/gnc-filepath-utils.c +++ b/src/core-utils/gnc-filepath-utils.c @@ -307,7 +307,7 @@ gnc_path_find_localized_html_file (const gchar *file_name) static gboolean gnc_validate_directory (const gchar *dirname, gboolean create, gchar **msg) { - struct stat statbuf; + GStatBuf statbuf; gint rc; *msg = NULL; diff --git a/src/core-utils/gnc-gkeyfile-utils.c b/src/core-utils/gnc-gkeyfile-utils.c index df843094db..f58a8eb99b 100644 --- a/src/core-utils/gnc-gkeyfile-utils.c +++ b/src/core-utils/gnc-gkeyfile-utils.c @@ -108,7 +108,6 @@ gnc_key_file_save_to_file (const gchar *filename, { gchar *contents; gint fd; - extern int errno; gint length; ssize_t written; gboolean success = TRUE; diff --git a/src/engine/TransLog.c b/src/engine/TransLog.c index eca61e1e6b..99546a9acf 100644 --- a/src/engine/TransLog.c +++ b/src/engine/TransLog.c @@ -22,7 +22,9 @@ \********************************************************************/ #include "config.h" - +#ifdef __MINGW32__ +#define __USE_MINGW_ANSI_STDIO 1 +#endif #include #include #include diff --git a/src/gnome/assistant-hierarchy.c b/src/gnome/assistant-hierarchy.c index ed8dd1e195..f9b61551e0 100644 --- a/src/gnome/assistant-hierarchy.c +++ b/src/gnome/assistant-hierarchy.c @@ -25,6 +25,7 @@ #include "config.h" #include +#include #if PLATFORM(WINDOWS) #include #endif @@ -230,7 +231,7 @@ gnc_get_ea_locale_dir(const char *top_dir) static gchar *default_locale = "C"; gchar *ret; gchar *locale; - struct stat buf; + GStatBuf buf; int i; #ifdef PLATFORM_WIN32 diff --git a/src/gnome/dialog-sx-from-trans.c b/src/gnome/dialog-sx-from-trans.c index 5c6a93cb6b..206155d42e 100644 --- a/src/gnome/dialog-sx-from-trans.c +++ b/src/gnome/dialog-sx-from-trans.c @@ -757,7 +757,9 @@ sxftd_update_excal_adapt( GObject *o, gpointer ud ) void gnc_sx_create_from_trans( Transaction *trans ) { +#ifndef __MINGW32__ int errno; +#endif SXFromTransInfo *sxfti = g_new0( SXFromTransInfo, 1); GtkBuilder *builder; GtkWidget *dialog; diff --git a/src/html/gnc-html-webkit.c b/src/html/gnc-html-webkit.c index 9ea2f21c8a..31b7a93520 100644 --- a/src/html/gnc-html-webkit.c +++ b/src/html/gnc-html-webkit.c @@ -26,6 +26,7 @@ #include "config.h" #include +#include #if PLATFORM(WINDOWS) #include #endif @@ -41,7 +42,6 @@ #include #include #include -#include #include diff --git a/src/import-export/aqb/CMakeLists.txt b/src/import-export/aqb/CMakeLists.txt index de2da9dbca..30fffecfd2 100644 --- a/src/import-export/aqb/CMakeLists.txt +++ b/src/import-export/aqb/CMakeLists.txt @@ -45,15 +45,21 @@ IF(WITH_AQBANKING) ${aqbanking_noinst_HEADERS} ) - SET(AQB_EXPORT_SYMBOLS "") IF (WIN32) SET(AQB_EXPORT_SYMBOLS "-Wl,--export-all-symbols") ENDIF() + SET(AQB_LIBSTDCXX "") + IF (MINGW) + SET(AQB_LIBSTDCXX "-lstdc++") + 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_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} ${AQB_LIBSTDCXX}) TARGET_COMPILE_DEFINITIONS(gncmod-aqbanking PRIVATE -DG_LOG_DOMAIN=\"gnc.import.aqbanking\") diff --git a/src/import-export/qif-imp/assistant-qif-import.c b/src/import-export/qif-imp/assistant-qif-import.c index 9b423f5077..c495b512e2 100644 --- a/src/import-export/qif-imp/assistant-qif-import.c +++ b/src/import-export/qif-imp/assistant-qif-import.c @@ -26,6 +26,7 @@ #include "config.h" #include +#include #if PLATFORM(WINDOWS) #include #endif diff --git a/src/report/report-gnome/gnc-plugin-page-report.c b/src/report/report-gnome/gnc-plugin-page-report.c index 8f86c5ee94..58d1353f1b 100644 --- a/src/report/report-gnome/gnc-plugin-page-report.c +++ b/src/report/report-gnome/gnc-plugin-page-report.c @@ -1471,7 +1471,7 @@ static char * gnc_get_export_filename (SCM choice) { char * filepath; - struct stat statbuf; + GStatBuf statbuf; char * title; const gchar * html_type = _("HTML"); char * type; diff --git a/src/report/report-system/gnc-report.c b/src/report/report-system/gnc-report.c index 3001f0f8c7..40c50908a6 100644 --- a/src/report/report-system/gnc-report.c +++ b/src/report/report-system/gnc-report.c @@ -231,7 +231,9 @@ gnc_saved_reports_write_internal (const gchar *file, const gchar *contents, gboo { gboolean success = TRUE; gint fd; +#ifndef __MINGW32__ extern int errno; +#endif ssize_t written; gint length; gint flags = O_WRONLY | O_CREAT | (overwrite ? O_TRUNC : O_APPEND);