Merge pull request #2175 from martin-frbg/cmake-mingw-fixes
Fix CMAKE compilation with MinGW32 and add it to Appveyor
This commit is contained in:
commit
dd7ff77f4b
|
@ -211,7 +211,8 @@ if (USE_THREAD)
|
||||||
target_link_libraries(${OpenBLAS_LIBNAME} ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${OpenBLAS_LIBNAME} ${CMAKE_THREAD_LIBS_INIT})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (MSVC OR NOT NOFORTRAN)
|
#if (MSVC OR NOT NOFORTRAN)
|
||||||
|
if (NOT NO_CBLAS)
|
||||||
# Broken without fortran on unix
|
# Broken without fortran on unix
|
||||||
add_subdirectory(utest)
|
add_subdirectory(utest)
|
||||||
endif()
|
endif()
|
||||||
|
|
15
appveyor.yml
15
appveyor.yml
|
@ -35,6 +35,13 @@ environment:
|
||||||
DYNAMIC_ARCH: ON
|
DYNAMIC_ARCH: ON
|
||||||
WITH_FORTRAN: no
|
WITH_FORTRAN: no
|
||||||
- COMPILER: cl
|
- COMPILER: cl
|
||||||
|
- COMPILER: MinGW64-gcc-7.2.0-mingw
|
||||||
|
DYNAMIC_ARCH: OFF
|
||||||
|
WITH_FORTRAN: ignore
|
||||||
|
- COMPILER: MinGW64-gcc-7.2.0
|
||||||
|
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||||
|
COMPILER: MinGW-gcc-5.3.0
|
||||||
|
WITH_FORTRAN: ignore
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- if [%COMPILER%]==[clang-cl] call %CONDA_INSTALL_LOCN%\Scripts\activate.bat
|
- if [%COMPILER%]==[clang-cl] call %CONDA_INSTALL_LOCN%\Scripts\activate.bat
|
||||||
|
@ -52,7 +59,14 @@ install:
|
||||||
before_build:
|
before_build:
|
||||||
- ps: if (-Not (Test-Path .\build)) { mkdir build }
|
- ps: if (-Not (Test-Path .\build)) { mkdir build }
|
||||||
- cd build
|
- cd build
|
||||||
|
- set PATH=%PATH:C:\Program Files\Git\usr\bin;=%
|
||||||
|
- if [%COMPILER%]==[MinGW-gcc-5.3.0] set PATH=C:\MinGW\bin;C:\msys64\usr\bin;C:\mingw-w64\x86_64-7.2.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
|
||||||
|
- if [%COMPILER%]==[MinGW64-gcc-7.2.0-mingw] set PATH=C:\MinGW\bin;C:\mingw-w64\x86_64-7.2.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
|
||||||
|
- if [%COMPILER%]==[MinGW64-gcc-7.2.0] set PATH=C:\msys64\usr\bin;C:\mingw-w64\x86_64-7.2.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
|
||||||
- if [%COMPILER%]==[cl] cmake -G "Visual Studio 15 2017 Win64" ..
|
- if [%COMPILER%]==[cl] cmake -G "Visual Studio 15 2017 Win64" ..
|
||||||
|
- if [%COMPILER%]==[MinGW64-gcc-7.2.0-mingw] cmake -G "MinGW Makefiles" -DNOFORTRAN=1 ..
|
||||||
|
- if [%COMPILER%]==[MinGW64-gcc-7.2.0] cmake -G "MSYS Makefiles" -DBINARY=32 -DNOFORTRAN=1 ..
|
||||||
|
- if [%COMPILER%]==[MinGW-gcc-5.3.0] cmake -G "MSYS Makefiles" -DNOFORTRAN=1 ..
|
||||||
- if [%WITH_FORTRAN%]==[no] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DMSVC_STATIC_CRT=ON ..
|
- if [%WITH_FORTRAN%]==[no] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DMSVC_STATIC_CRT=ON ..
|
||||||
- if [%WITH_FORTRAN%]==[yes] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_Fortran_COMPILER=flang -DBUILD_WITHOUT_LAPACK=no -DNOFORTRAN=0 ..
|
- if [%WITH_FORTRAN%]==[yes] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_Fortran_COMPILER=flang -DBUILD_WITHOUT_LAPACK=no -DNOFORTRAN=0 ..
|
||||||
- if [%DYNAMIC_ARCH%]==[ON] cmake -DDYNAMIC_ARCH=ON -DDYNAMIC_LIST='CORE2;NEHALEM;SANDYBRIDGE;BULLDOZER;HASWELL' ..
|
- if [%DYNAMIC_ARCH%]==[ON] cmake -DDYNAMIC_ARCH=ON -DDYNAMIC_LIST='CORE2;NEHALEM;SANDYBRIDGE;BULLDOZER;HASWELL' ..
|
||||||
|
@ -64,3 +78,4 @@ test_script:
|
||||||
- echo Running Test
|
- echo Running Test
|
||||||
- cd utest
|
- cd utest
|
||||||
- openblas_utest
|
- openblas_utest
|
||||||
|
|
||||||
|
|
|
@ -81,7 +81,8 @@ if (DYNAMIC_ARCH)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (NOT DYNAMIC_CORE)
|
if (NOT DYNAMIC_CORE)
|
||||||
unset(DYNAMIC_ARCH)
|
message (STATUS "DYNAMIC_ARCH is not supported on this architecture, removing from options")
|
||||||
|
unset(DYNAMIC_ARCH CACHE)
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
|
@ -59,6 +59,9 @@ set(FU "")
|
||||||
if (APPLE OR (MSVC AND NOT ${CMAKE_C_COMPILER_ID} MATCHES "Clang"))
|
if (APPLE OR (MSVC AND NOT ${CMAKE_C_COMPILER_ID} MATCHES "Clang"))
|
||||||
set(FU "_")
|
set(FU "_")
|
||||||
endif()
|
endif()
|
||||||
|
if(MINGW AND NOT MINGW64)
|
||||||
|
set(FU "_")
|
||||||
|
endif()
|
||||||
|
|
||||||
set(COMPILER_ID ${CMAKE_C_COMPILER_ID})
|
set(COMPILER_ID ${CMAKE_C_COMPILER_ID})
|
||||||
if (${COMPILER_ID} STREQUAL "GNU")
|
if (${COMPILER_ID} STREQUAL "GNU")
|
||||||
|
@ -82,6 +85,11 @@ endif ()
|
||||||
# f_check
|
# f_check
|
||||||
if (NOT NOFORTRAN)
|
if (NOT NOFORTRAN)
|
||||||
include("${PROJECT_SOURCE_DIR}/cmake/f_check.cmake")
|
include("${PROJECT_SOURCE_DIR}/cmake/f_check.cmake")
|
||||||
|
else ()
|
||||||
|
file(APPEND ${TARGET_CONF_TEMP}
|
||||||
|
"#define BUNDERSCORE _\n"
|
||||||
|
"#define NEEDBUNDERSCORE 1\n")
|
||||||
|
set(BU "_")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# Cannot run getarch on target if we are cross-compiling
|
# Cannot run getarch on target if we are cross-compiling
|
||||||
|
|
|
@ -70,6 +70,13 @@ if (X86_64)
|
||||||
set(GETARCH_FLAGS "${GETARCH_FLAGS} -march=native")
|
set(GETARCH_FLAGS "${GETARCH_FLAGS} -march=native")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
# On x86 no AVX support is available
|
||||||
|
if (X86 OR X86_64)
|
||||||
|
if ((DEFINED BINARY AND BINARY EQUAL 32) OR ("$CMAKE_SIZEOF_VOID_P}" EQUAL "4"))
|
||||||
|
set(GETARCH_FLAGS "${GETARCH_FLAGS} -DNO_AVX -DNO_AVX2 -DNO_AVX512")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
if (INTERFACE64)
|
if (INTERFACE64)
|
||||||
message(STATUS "Using 64-bit integers.")
|
message(STATUS "Using 64-bit integers.")
|
||||||
set(GETARCH_FLAGS "${GETARCH_FLAGS} -DUSE64BITINT")
|
set(GETARCH_FLAGS "${GETARCH_FLAGS} -DUSE64BITINT")
|
||||||
|
@ -148,7 +155,9 @@ else()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
include("${PROJECT_SOURCE_DIR}/cmake/prebuild.cmake")
|
include("${PROJECT_SOURCE_DIR}/cmake/prebuild.cmake")
|
||||||
|
if (DEFINED BINARY)
|
||||||
|
message(STATUS "Compiling a ${BINARY}-bit binary.")
|
||||||
|
endif ()
|
||||||
if (NOT DEFINED NEED_PIC)
|
if (NOT DEFINED NEED_PIC)
|
||||||
set(NEED_PIC 1)
|
set(NEED_PIC 1)
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -165,6 +174,9 @@ include("${PROJECT_SOURCE_DIR}/cmake/cc.cmake")
|
||||||
if (NOT NOFORTRAN)
|
if (NOT NOFORTRAN)
|
||||||
# Fortran Compiler dependent settings
|
# Fortran Compiler dependent settings
|
||||||
include("${PROJECT_SOURCE_DIR}/cmake/fc.cmake")
|
include("${PROJECT_SOURCE_DIR}/cmake/fc.cmake")
|
||||||
|
else ()
|
||||||
|
set(NO_LAPACK 1)
|
||||||
|
set(NO_LAPACKE 1)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (BINARY64)
|
if (BINARY64)
|
||||||
|
@ -190,10 +202,15 @@ if (NEED_PIC)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (DYNAMIC_ARCH)
|
if (DYNAMIC_ARCH)
|
||||||
|
if (X86 OR X86_64 OR ARM64 OR PPC)
|
||||||
set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_ARCH")
|
set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_ARCH")
|
||||||
if (DYNAMIC_OLDER)
|
if (DYNAMIC_OLDER)
|
||||||
set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_OLDER")
|
set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_OLDER")
|
||||||
endif ()
|
endif ()
|
||||||
|
else ()
|
||||||
|
unset (DYNAMIC_ARCH)
|
||||||
|
message (STATUS "DYNAMIC_ARCH is not supported on the target architecture, removing")
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (DYNAMIC_LIST)
|
if (DYNAMIC_LIST)
|
||||||
|
|
Loading…
Reference in New Issue