diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 654d7fa0..cb16ee51 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -10,6 +10,9 @@ set_target_properties(espeak-ng-bin PROPERTIES OUTPUT_NAME espeak-ng) target_link_libraries( espeak-ng-bin PRIVATE espeak-ng espeak-ng-config ) +if (MINGW) + target_link_options(espeak-ng-bin PRIVATE "-static-libstdc++" "-static") +endif() if (MSVC) target_sources(espeak-ng-bin PRIVATE compat/getopt.c) endif() diff --git a/src/libespeak-ng/CMakeLists.txt b/src/libespeak-ng/CMakeLists.txt index d3d68f7f..63f0d48c 100644 --- a/src/libespeak-ng/CMakeLists.txt +++ b/src/libespeak-ng/CMakeLists.txt @@ -102,4 +102,14 @@ if (NOT MSVC) endif() target_link_libraries(espeak-ng PUBLIC espeak-include) +if ((MINGW OR WIN32 OR MSVC) AND BUILD_SHARED_LIBS) + set_target_properties(espeak-ng PROPERTIES + RUNTIME_OUTPUT_DIRECTORY .. + ) +endif() + +if (MINGW) + target_link_options(espeak-ng PRIVATE "-static-libstdc++" "-static") +endif() + install(TARGETS espeak-ng LIBRARY) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index b8371617..1c3832cf 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -10,6 +10,7 @@ macro(compiled_test _test_name) target_link_libraries(test_${_test_name} PRIVATE $ ) + target_compile_definitions(test_${_test_name} PRIVATE LIBESPEAK_NG_EXPORT=1) target_include_directories( test_${_test_name} PRIVATE $ @@ -17,6 +18,9 @@ macro(compiled_test _test_name) $ $ ) + if (MINGW) + target_link_options(test_${_test_name} PUBLIC "-static" "-static-libstdc++") + endif() add_dependencies(test_${_test_name} data) add_test( NAME ${_test_name} diff --git a/tests/api.c b/tests/api.c index 873ec1fa..1b3d7c89 100644 --- a/tests/api.c +++ b/tests/api.c @@ -630,7 +630,7 @@ main(int argc, char **argv) (void)argc; // unused parameter char *progdir = strdup(argv[0]); - char *dir = strrchr(progdir, '/'); + char *dir = strrchr(progdir, PATHSEP); if (dir != NULL) *dir = 0; test_espeak_terminate_without_initialize();