Fix CMAKE compilation with MinGW32 and add it to Appveyortags/v0.3.7
| @@ -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() | ||||
| @@ -35,7 +35,14 @@ 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 | ||||
| - if [%COMPILER%]==[clang-cl] conda config --add channels conda-forge --force | - if [%COMPILER%]==[clang-cl] conda config --add channels conda-forge --force | ||||
| @@ -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,9 +202,14 @@ if (NEED_PIC) | |||||
| endif () | endif () | ||||
| if (DYNAMIC_ARCH) | if (DYNAMIC_ARCH) | ||||
| set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_ARCH") | |||||
| if (DYNAMIC_OLDER) | |||||
| set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_OLDER") | |||||
| if (X86 OR X86_64 OR ARM64 OR PPC) | |||||
| set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_ARCH") | |||||
| if (DYNAMIC_OLDER) | |||||
| set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_OLDER") | |||||
| endif () | |||||
| else () | |||||
| unset (DYNAMIC_ARCH) | |||||
| message (STATUS "DYNAMIC_ARCH is not supported on the target architecture, removing") | |||||
| endif () | endif () | ||||
| endif () | endif () | ||||