Skip to content

Commit c6968ed

Browse files
authored
Merge pull request #1350 from insertinterestingnamehere/flang
WIP: Support for Flang on Windows
2 parents ab87ee6 + 9268314 commit c6968ed

File tree

6 files changed

+571
-465
lines changed

6 files changed

+571
-465
lines changed

CMakeLists.txt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ if (NOT DEFINED BUILD_SINGLE AND NOT DEFINED BUILD_DOUBLE AND NOT DEFINED BUILD_
7070
set(BUILD_COMPLEX16 true)
7171
endif ()
7272

73+
if (NOT DEFINED BUILD_MATGEN)
74+
set(BUILD_MATGEN true)
75+
endif()
76+
7377
set(FLOAT_TYPES "")
7478
if (BUILD_SINGLE)
7579
message(STATUS "Building Single Precision")
@@ -163,7 +167,7 @@ set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES LIBRARY_OUTPUT_NAME_DEBUG
163167

164168
foreach (OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
165169
string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG )
166-
170+
167171
set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${PROJECT_BINARY_DIR}/lib/${OUTPUTCONFIG} )
168172
set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${PROJECT_BINARY_DIR}/lib/${OUTPUTCONFIG} )
169173
set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${PROJECT_BINARY_DIR}/lib/${OUTPUTCONFIG} )
@@ -194,7 +198,7 @@ if (NOT MSVC AND NOT NOFORTRAN)
194198
endif()
195199
endif()
196200

197-
set_target_properties(${OpenBLAS_LIBNAME} PROPERTIES
201+
set_target_properties(${OpenBLAS_LIBNAME} PROPERTIES
198202
VERSION ${OpenBLAS_MAJOR_VERSION}.${OpenBLAS_MINOR_VERSION}
199203
SOVERSION ${OpenBLAS_MAJOR_VERSION}
200204
)
@@ -206,7 +210,7 @@ install(TARGETS ${OpenBLAS_LIBNAME}
206210
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
207211
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
208212
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )
209-
213+
210214
message(STATUS "Generating openblas_config.h in ${CMAKE_INSTALL_INCLUDEDIR}")
211215

212216
set(OPENBLAS_CONFIG_H ${CMAKE_BINARY_DIR}/openblas_config.h)
@@ -250,7 +254,7 @@ if(NOT NO_LAPACKE)
250254
add_dependencies( ${OpenBLAS_LIBNAME} genlapacke)
251255
FILE(GLOB_RECURSE INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/lapack-netlib/LAPACKE/*.h")
252256
install (FILES ${INCLUDE_FILES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
253-
257+
254258
ADD_CUSTOM_TARGET(genlapacke
255259
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lapack-netlib/LAPACKE/include/lapacke_mangling_with_flags.h.in "${CMAKE_BINARY_DIR}/lapacke_mangling.h"
256260
)

appveyor.yml

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,23 +24,32 @@ skip_commits:
2424
message: /\[av skip\]/
2525

2626
environment:
27+
global:
28+
CONDA_INSTALL_LOCN: C:\\Miniconda36-x64
2729
matrix:
2830
- COMPILER: clang-cl
29-
DYNAMIC_ARCH: ON
31+
WITH_FORTRAN: yes
3032
- COMPILER: clang-cl
33+
DYNAMIC_ARCH: ON
34+
WITH_FORTRAN: no
3135
- COMPILER: cl
3236

3337
install:
34-
- if [%COMPILER%]==[clang-cl] call C:\Miniconda36-x64\Scripts\activate.bat
38+
- if [%COMPILER%]==[clang-cl] call %CONDA_INSTALL_LOCN%\Scripts\activate.bat
3539
- if [%COMPILER%]==[clang-cl] conda config --add channels conda-forge --force
36-
- if [%COMPILER%]==[clang-cl] conda install --yes clangdev ninja cmake
40+
- if [%WITH_FORTRAN%]==[yes] conda config --add channels isuruf/label/flang --force
41+
- if [%COMPILER%]==[clang-cl] conda install --yes --quiet clangdev ninja cmake
42+
- if [%WITH_FORTRAN%]==[yes] conda install --yes --quiet flangdev clangdev cmake
3743
- if [%COMPILER%]==[clang-cl] call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
44+
- if [%COMPILER%]==[clang-cl] set "LIB=%CONDA_INSTALL_LOCN%\Library\lib;%LIB%"
45+
- if [%COMPILER%]==[clang-cl] set "CPATH=%CONDA_INSTALL_LOCN%\Library\include;%CPATH%"
3846

3947
before_build:
4048
- echo Running cmake...
4149
- cd c:\projects\OpenBLAS
4250
- if [%COMPILER%]==[cl] cmake -G "Visual Studio 12 Win64" .
43-
- if [%COMPILER%]==[clang-cl] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl .
51+
- if [%WITH_FORTRAN%]==[no] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl .
52+
- if [%WITH_FORTRAN%]==[yes] cmake -G "NMake Makefiles" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_Fortran_COMPILER=flang -DBUILD_WITHOUT_LAPACK=no -DNOFORTRAN=0 .
4453
- if [%DYNAMIC_ARCH%]==[ON] cmake -DDYNAMIC_ARCH=ON .
4554

4655
build_script:

cmake/f_check.cmake

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,6 @@
2020
# NEEDBUNDERSCORE
2121
# NEED2UNDERSCORES
2222

23-
if (MSVC)
24-
# had to do this for MSVC, else CMake automatically assumes I have ifort... -hpa
25-
include(CMakeForceCompiler)
26-
CMAKE_FORCE_Fortran_COMPILER(gfortran GNU)
27-
endif ()
28-
2923
if (NOT NO_LAPACK)
3024
enable_language(Fortran)
3125
else()

0 commit comments

Comments
 (0)