From e0f3db1e51e7cc2e7c2835ec78c1f784bdb0d050 Mon Sep 17 00:00:00 2001 From: Rashad Kanavath <rashad.kanavath@c-s.fr> Date: Thu, 24 Dec 2015 16:15:51 +0100 Subject: [PATCH] PKG: fixup mxe gcc dir and list of system dlls exceptions --- CMake/MinGWPackage.cmake | 68 +++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/CMake/MinGWPackage.cmake b/CMake/MinGWPackage.cmake index ab4d361da3..0baac2dcb3 100644 --- a/CMake/MinGWPackage.cmake +++ b/CMake/MinGWPackage.cmake @@ -15,6 +15,8 @@ macro(package_mingw) set(MXE_OBJDUMP "${PACKAGE_MXEROOT}/usr/bin/x86_64-w64-mingw32.shared-objdump") endif() + file(GLOB MXE_GCC_LIB_DIR "${MXE_BIN_DIR}/gcc*") + list(APPEND PACKAGE_SEARCHDIRS ${MXE_GCC_LIB_DIR}) list(APPEND PACKAGE_SEARCHDIRS ${MXE_BIN_DIR}) list(APPEND PACKAGE_SEARCHDIRS "${MXE_BIN_DIR}/../qt/bin") #Qt list(APPEND PACKAGE_SEARCHDIRS "${MXE_BIN_DIR}/../qt/lib") #Qwt @@ -42,39 +44,35 @@ macro(package_mingw) endmacro(package_mingw) -SET(SYSTEM_DLLS +set(SYSTEM_DLLS msvc.*dll - USER32.dll - GDI32.dll - SHELL32.DLL - KERNEL32.dll - ADVAPI32.dll - CRYPT32.dll - WS2_32.dll + user32.dll + gdi32.dll + shell32.dll + kernel32.dll + advapi32.dll + crypt32.dll + ws2_32.dll wldap32.dll ole32.dll - OPENGL32.DLL - GLU32.DLL - COMDLG32.DLL - IMM32.DLL - OLEAUT32.dll - COMCTL32.DLL - WINMM.DLL - - SHELL32.dll - WLDAP32.dll - OPENGL32.dll - GLU32.dll + opengl32.dll + glu32.dll comdlg32.dll - IMM32.dll - WINMM.dll - WINSPOOL.DRV) - -## http://www.cmake.org/Wiki/CMakeMacroListOperations -macro(IS_SYSTEM_DLL matched value) + imm32.dll + oleaut32.dll + comctl32.dll + winmm.dll + shfolder.dll + secur32.dll + wsock32.dll + winspool.drv) + +macro(is_system_dll matched value) set(${matched}) + string(TOLOWER ${value} value_) foreach (pattern ${SYSTEM_DLLS}) - if(${value} MATCHES ${pattern}) + string(TOLOWER ${pattern} pattern_) + if(${value_} MATCHES ${pattern_}) set(${matched} TRUE) endif() endforeach() @@ -90,9 +88,7 @@ macro(list_contains var value) endmacro() function(process_deps infile) - get_filename_component(bn ${infile} NAME) - list_contains(contains "${bn}" "${alldlls}") if(NOT contains) set(DLL_FOUND FALSE) @@ -100,14 +96,20 @@ function(process_deps infile) if(NOT DLL_FOUND) if(EXISTS ${SEARCHDIR}/${infile}) set(DLL_FOUND TRUE) - + else() + string(TOLOWER ${infile} infile_lower) + if(EXISTS ${SEARCHDIR}/${infile_lower}) + set(DLL_FOUND TRUE) + set(infile ${infile_lower}) + endif() + endif() + if(DLL_FOUND) message(STATUS "Processing ${SEARCHDIR}/${infile}") if(NOT "${infile}" MATCHES "otbapp") - install( - FILES "${SEARCHDIR}/${infile}" + install(FILES "${SEARCHDIR}/${infile}" DESTINATION ${PACKAGE_PREFIX_DIR}/bin) else() - + ##message(STATUS "skipping..${infile}") endif() if(NOT EXISTS ${MXE_OBJDUMP}) message(FATAL_ERROR "objdump executable not found. please check MXE_OBJDUMP is set to correct cross compiled executable") -- GitLab