diff options
author | Wohlstand <admin@wohlnet.ru> | 2020-09-21 03:33:23 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2020-09-21 03:33:23 +0300 |
commit | 08773b7ed7181e03392a766a7c1a8335d4ac44e6 (patch) | |
tree | 1b268346e585af8ca0151a8af24a9e8d7219f988 /utils/winmm_drv/CMakeLists.txt | |
parent | 31f32ac688336e179ebad0ba24ee991804ac17d0 (diff) | |
download | libADLMIDI-08773b7ed7181e03392a766a7c1a8335d4ac44e6.tar.gz libADLMIDI-08773b7ed7181e03392a766a7c1a8335d4ac44e6.tar.bz2 libADLMIDI-08773b7ed7181e03392a766a7c1a8335d4ac44e6.zip |
WinMM-Drv: Better compatibility with older Windows
Do link of a mingwex statically
Diffstat (limited to 'utils/winmm_drv/CMakeLists.txt')
-rw-r--r-- | utils/winmm_drv/CMakeLists.txt | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/utils/winmm_drv/CMakeLists.txt b/utils/winmm_drv/CMakeLists.txt index ad35aaa..ae76a0c 100644 --- a/utils/winmm_drv/CMakeLists.txt +++ b/utils/winmm_drv/CMakeLists.txt @@ -3,7 +3,10 @@ if(NOT WIN32) message(FATAL_ERROR "WinDriver: This component is for Windows Platform only") endif() -option(WITH_WINMMDRV_PTHREADS "Link libwinpthreads statically (when using pthread-based builds)" ON) +if(WIN32 AND CMAKE_COMPILER_IS_GNUCXX) + option(WITH_WINMMDRV_PTHREADS "Link libwinpthreads statically (when using pthread-based builds)" ON) + option(WITH_WINMMDRV_MINGWEX "Link libmingwex statically (when using vanilla MinGW builds)" OFF) +endif() #==================================== # Driver module @@ -32,6 +35,9 @@ if(WIN32 AND CMAKE_COMPILER_IS_GNUCXX) if(WITH_WINMMDRV_PTHREADS) set_property(TARGET adlmididrv APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-Bstatic,--whole-archive -lpthread -Wl,-Bdynamic,--no-whole-archive") endif() + if(WITH_WINMMDRV_MINGWEX) + set_property(TARGET adlmididrv APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-Bstatic,--whole-archive -lmingwex -Wl,-Bdynamic,--no-whole-archive") + endif() endif() if(NOT MSVC) @@ -64,8 +70,14 @@ target_compile_definitions(drvsetup PRIVATE if(WIN32 AND CMAKE_COMPILER_IS_GNUCXX) set_property(TARGET drvsetup APPEND_STRING PROPERTY LINK_FLAGS " -static-libgcc") + if(WITH_WINMMDRV_MINGWEX) + set_property(TARGET drvsetup APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-Bstatic,--whole-archive -lmingwex -Wl,-Bdynamic,--no-whole-archive") + endif() endif() +configure_file(installer/install.bat ${CMAKE_BINARY_DIR}/install.bat COPYONLY) +configure_file(installer/uninstall.bat ${CMAKE_BINARY_DIR}/uninstall.bat COPYONLY) + #==================================== # A unit test to verify the driver @@ -74,6 +86,9 @@ endif() add_executable(drvtest test/test.c) target_link_libraries(drvtest PRIVATE winmm) target_compile_options(drvtest PRIVATE "-Wno-cast-function-type") +if(WITH_WINMMDRV_MINGWEX) + set_property(TARGET drvtest APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-Bstatic,--whole-archive -lmingwex -Wl,-Bdynamic,--no-whole-archive") +endif() #==================================== @@ -101,6 +116,7 @@ target_compile_definitions(adlmidiconfig PRIVATE target_link_libraries(adlmidiconfig PRIVATE comctl32 gdi32 user32) + add_executable(adlmidiconfigtool ${ADLMIDI_DRIVER_SRC} cpl/adlconfig-tool.c cpl/res-tool.rc) set_target_properties(adlmidiconfigtool PROPERTIES WIN32_EXECUTABLE ON) target_include_directories(adlmidiconfigtool PRIVATE config) @@ -119,6 +135,10 @@ if(WIN32 AND CMAKE_COMPILER_IS_GNUCXX) target_compile_options(adlmidiconfigtool PRIVATE "-Wno-cast-function-type") set_property(TARGET adlmidiconfig APPEND_STRING PROPERTY LINK_FLAGS " -static-libgcc -Wl,--enable-stdcall-fixup") set_property(TARGET adlmidiconfigtool APPEND_STRING PROPERTY LINK_FLAGS " -static-libgcc -Wl,--enable-stdcall-fixup") + if(WITH_WINMMDRV_MINGWEX) + set_property(TARGET adlmidiconfig APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-Bstatic,--whole-archive -lmingwex -Wl,-Bdynamic,--no-whole-archive") + set_property(TARGET adlmidiconfigtool APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-Bstatic,--whole-archive -lmingwex -Wl,-Bdynamic,--no-whole-archive") + endif() endif() |