diff --git a/CMakeLists.txt b/CMakeLists.txt index 9db2b6b6e3..10d9609e0e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -204,8 +204,11 @@ if (WIN32) set(REGEX_LDFLAGS "-L${REGEX_LIB_PATH} -lregex") #set(LIBXSLT_INCLUDE_DIR ${CMAKE_PREFIX_PATH}/libxslt/include) #set(LIBXSLT_XSLTPROC_EXECUTABLE ${CMAKE_PREFIX_PATH}/libxslt/bin/xsltproc) -#Prevent creating a console window on startup and harden the executable. + #Prevent creating a console window on startup and harden the executable. set(CMAKE_EXE_LINKER_FLAGS "-mwindows -Wl,--nxcompat -Wl,--dynamicbase") + #Find the winsock2 library + find_library(WINSOCK_LIB wsock32) + find_library(WS2_LIB ws2_32) endif() find_package(Threads REQUIRED) diff --git a/common/cmake_modules/GncAddTest.cmake b/common/cmake_modules/GncAddTest.cmake index 6f62f32480..629bbf8010 100644 --- a/common/cmake_modules/GncAddTest.cmake +++ b/common/cmake_modules/GncAddTest.cmake @@ -100,6 +100,9 @@ function(gnc_add_test _TARGET _SOURCE_FILES TEST_INCLUDE_VAR_NAME TEST_LIBS_VAR_ endif() add_executable(${_TARGET} EXCLUDE_FROM_ALL ${_SOURCE_FILES}) target_link_libraries(${_TARGET} PRIVATE ${TEST_LIBS}) +if (MINGW) + target_link_options(${_TARGET} PRIVATE -mconsole) +endif() target_include_directories(${_TARGET} PRIVATE ${TEST_INCLUDE_DIRS}) set_tests_properties(${_TARGET} PROPERTIES ENVIRONMENT "${ENVVARS}$<$:;ASAN_OPTIONS=${ASAN_TEST_OPTIONS}>") add_dependencies(testbuild ${_TARGET}) diff --git a/gnucash/import-export/test/CMakeLists.txt b/gnucash/import-export/test/CMakeLists.txt index 0c9b34dab2..0c1859462f 100644 --- a/gnucash/import-export/test/CMakeLists.txt +++ b/gnucash/import-export/test/CMakeLists.txt @@ -42,6 +42,7 @@ set(gtest_import_backend_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/libgnucash/engine/mocks ${GTEST_INCLUDE_DIR} ${GMOCK_INCLUDE_DIR} + ${CMAKE_SOURCE_DIR}/borrowed/libc # for strptime.h ) set(gtest_import_backend_LIBS @@ -73,8 +74,14 @@ set(gtest_import_backend_SOURCES ${CMAKE_SOURCE_DIR}/libgnucash/engine/gnc-datetime.cpp ${CMAKE_SOURCE_DIR}/libgnucash/engine/gnc-timezone.cpp ${CMAKE_SOURCE_DIR}/libgnucash/core-utils/gnc-locale-utils.cpp + $<$:${CMAKE_SOURCE_DIR}/libgnucash/engine/qof-win32.cpp> + $<$:${CMAKE_SOURCE_DIR}/borrowed/libc/strptime.c> ) +if (WIN32) + add_definitions(-DOS_WIN32) +endif() + gnc_add_test(test-import-backend "${gtest_import_backend_SOURCES}" gtest_import_backend_INCLUDE_DIRS gtest_import_backend_LIBS) diff --git a/libgnucash/app-utils/test/CMakeLists.txt b/libgnucash/app-utils/test/CMakeLists.txt index b2da73c39c..c8143a333e 100644 --- a/libgnucash/app-utils/test/CMakeLists.txt +++ b/libgnucash/app-utils/test/CMakeLists.txt @@ -47,7 +47,10 @@ set(test_gnc_quotes_LIBS ${Boost_LOCALE_LIBRARY} ${Boost_PROPERTY_TREE_LIBRARY} ${Boost_SYSTEM_LIBRARY} - ) + $<$:${WINSOCK_LIB}> + $<$:${WS2_LIB}> + ) + gnc_add_test(test-gnc-quotes "${test_gnc_quotes_SOURCES}" test_gnc_quotes_INCLUDES test_gnc_quotes_LIBS "GTEST_FILTER=-GncQuotesTest.online_wiggle") diff --git a/libgnucash/backend/dbi/test/CMakeLists.txt b/libgnucash/backend/dbi/test/CMakeLists.txt index efb193af04..9e119c8b5b 100644 --- a/libgnucash/backend/dbi/test/CMakeLists.txt +++ b/libgnucash/backend/dbi/test/CMakeLists.txt @@ -9,7 +9,16 @@ set(BACKEND_DBI_TEST_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/common/test-core ${LIBDBI_INCLUDE_PATH} ) -set(BACKEND_DBI_TEST_LIBS gnc-backend-sql gnc-engine gnc-test-engine test-core ${Boost_REGEX_LIBRARY} ${LIBDBI_LIBRARY}) +set(BACKEND_DBI_TEST_LIBS + gnc-backend-sql + gnc-engine + gnc-test-engine + test-core + ${Boost_REGEX_LIBRARY} + ${LIBDBI_LIBRARY} + $<$:${WINSOCK_LIB}> + $<$:${WS2_LIB}> +) set(test_dbi_backend_SOURCES test-backend-dbi.cpp @@ -26,7 +35,7 @@ set(test_dbi_backend_HEADERS test-dbi-business-stuff.h test-dbi-stuff.h) set_dist_list(test_dbi_backend_DIST ${test_dbi_backend_SOURCES} ${test_dbi_backend_HEADERS} test-dbi.xml CMakeLists.txt ) # This test does not work on Win32 -if (WITH_SQL AND NOT WIN32) +if (WITH_SQL) gnc_add_test(test-backend-dbi "${test_dbi_backend_SOURCES}" BACKEND_DBI_TEST_INCLUDE_DIRS BACKEND_DBI_TEST_LIBS ) diff --git a/libgnucash/backend/xml/test/gtest-xml-contents.cpp b/libgnucash/backend/xml/test/gtest-xml-contents.cpp index d2ddcf02e7..d5db6912a1 100644 --- a/libgnucash/backend/xml/test/gtest-xml-contents.cpp +++ b/libgnucash/backend/xml/test/gtest-xml-contents.cpp @@ -96,7 +96,7 @@ TEST_F(LoadFile, LoadAndVerifyKVP) // THE FOLLOWING TESTS BANK ACCOUNT const auto& bank_splitlist = xaccAccountGetSplits (bank_acct); - ASSERT_EQ (bank_splitlist.size(), static_cast(4)); + ASSERT_EQ (bank_splitlist.size(), static_cast(4)); // first split is from a regular transaction auto bank_reg_split{bank_splitlist[0]}; @@ -168,7 +168,7 @@ TEST_F(LoadFile, LoadAndVerifyKVP) ASSERT_TRUE (AR_acct != nullptr); const auto& AR_splitlist{xaccAccountGetSplits (AR_acct)}; - ASSERT_EQ (AR_splitlist.size(), static_cast(3)); + ASSERT_EQ (AR_splitlist.size(), static_cast(3)); // 1st split is invoice posting txn auto inv_post_txn{xaccSplitGetParent(AR_splitlist[0])}; @@ -195,7 +195,7 @@ TEST_F(LoadFile, LoadAndVerifyKVP) ASSERT_TRUE (close_acct != nullptr); const auto& close_splitlist{xaccAccountGetSplits (close_acct)}; - ASSERT_EQ (close_splitlist.size(), static_cast(1)); + ASSERT_EQ (close_splitlist.size(), static_cast(1)); // 3rd split is a closing txn auto closing_txn{xaccSplitGetParent(close_splitlist[0])};