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:
@@ -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()
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -2,3 +2,5 @@ SET(CMAKE_SYSTEM_NAME Windows)
|
||||
SET(CMAKE_SYSTEM_VERSION 1)
|
||||
|
||||
SET(CMAKE_SYSTEM_PROCESSOR i686)
|
||||
|
||||
SET(WIN64 FALSE)
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user