MSYS compilation fixes

* Fix MSYS and processor detection when not using the provided toolchain
  file
* Fix creation of import library (ENABLE_EXPORTS not working)
This commit is contained in:
Lukas W
2018-06-13 17:11:49 +02:00
parent 3c6f200beb
commit a7b0c99242
5 changed files with 21 additions and 9 deletions

View File

@@ -10,13 +10,16 @@ ELSE()
SET(LMMS_BUILD_LINUX 1)
ENDIF(WIN32)
# See build_winXX.sh for LMMS_BUILD_MSYS
# LMMS_BUILD_MSYS also set in build_winXX.sh
IF(LMMS_BUILD_WIN32 AND CMAKE_COMPILER_IS_GNUCXX AND DEFINED ENV{MSYSCON})
SET(LMMS_BUILD_MSYS TRUE)
ENDIF()
MESSAGE("PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}")
SET(LMMS_HOST_X86 FALSE)
SET(LMMS_HOST_X86_64 FALSE)
IF(MSVC)
IF(NOT DEFINED WIN64)
STRING(REGEX MATCH "86_64|amd64|AMD64" WIN64 "${CMAKE_SYSTEM_PROCESSOR}")
ENDIF()

View File

@@ -37,10 +37,10 @@ ENDIF()
# Fix windows paths for msys
IF(LMMS_BUILD_MSYS)
STRING(REGEX REPLACE "/" "\\\\\\\\" CPACK_PACKAGE_ICON "${CPACK_PACKAGE_ICON}")
STRING(REGEX REPLACE "/" "\\\\\\\\" CPACK_NSIS_MUI_ICON "${CPACK_NSIS_MUI_ICON}")
STRING(REGEX REPLACE "/" "\\\\\\\\" CPACK_NSIS_DEFINES "${CPACK_NSIS_DEFINES}")
STRING(REGEX REPLACE "/" "\\\\\\\\" CMAKE_BINARY_DIR_FIX "${CMAKE_BINARY_DIR}")
STRING(REPLACE "/" "\\\\" CPACK_PACKAGE_ICON "${CPACK_PACKAGE_ICON}")
STRING(REPLACE "/" "\\\\" CPACK_NSIS_MUI_ICON "${CPACK_NSIS_MUI_ICON}")
STRING(REPLACE "/" "\\\\" CPACK_NSIS_DEFINES "${CPACK_NSIS_DEFINES}")
STRING(REPLACE "/" "\\\\" CMAKE_BINARY_DIR_FIX "${CMAKE_BINARY_DIR}")
# FIXME: there's no easy way to fix $INST_DIR, so we'll redefine it manually
IF(WIN64)

View File

@@ -2,7 +2,6 @@
SET(CMAKE_FIND_ROOT_PATH ${MINGW_PREFIX})
SET(CMAKE_INSTALL_PREFIX ${MINGW_PREFIX})
# Windows msys mingw ships with a mostly-suitable preconfigured environment
SET(STRIP ${MINGW_PREFIX}/bin/strip)
SET(CMAKE_RC_COMPILER ${MINGW_PREFIX}/bin/windres)
@@ -34,4 +33,4 @@ IF(LMMS_BUILD_MSYS AND CMAKE_BUILD_TYPE STREQUAL "Debug")
SET(QT_LIBRARIES "${QT_OVERRIDE_LIBRARIES}")
ENDIF()
SET(LMMS_BUILD_MSYS 1)
SET(LMMS_BUILD_MSYS 1)

View File

@@ -2,3 +2,5 @@ SET(CMAKE_SYSTEM_NAME Windows)
SET(CMAKE_SYSTEM_VERSION 1)
SET(CMAKE_SYSTEM_PROCESSOR i686)
SET(WIN64 FALSE)

View File

@@ -178,6 +178,15 @@ IF(LMMS_BUILD_WIN32)
LINK_FLAGS "${LINK_FLAGS} -mwindows"
ENABLE_EXPORTS ON
)
IF(LMMS_BUILD_MSYS)
# ENABLE_EXPORTS property has no effect in some MSYS2 configurations.
# Add the linker flag manually to create liblmms.dll.a import library
SET_PROPERTY(TARGET lmms
APPEND_STRING PROPERTY LINK_FLAGS -Wl,--out-implib,liblmms.dll.a
)
ENDIF()
IF(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
ADD_CUSTOM_COMMAND(TARGET lmms POST_BUILD COMMAND "${STRIP}" "$<TARGET_FILE:lmms>")
ENDIF()
@@ -249,7 +258,6 @@ IF(LMMS_BUILD_WIN32)
"${MINGW_PREFIX}/lib/libsoundio.dll"
DESTINATION .)
ENDIF()
ELSE(LMMS_BUILD_WIN32)
IF(NOT LMMS_BUILD_APPLE)
SET_TARGET_PROPERTIES(lmms PROPERTIES LINK_FLAGS "${LINK_FLAGS} -Wl,-E")