| @@ -152,14 +152,15 @@ if(MSVC AND BUILD_SHARED_LIBS) | |||||
| if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 3.4) | if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} LESS 3.4) | ||||
| include("${PROJECT_SOURCE_DIR}/cmake/export.cmake") | include("${PROJECT_SOURCE_DIR}/cmake/export.cmake") | ||||
| else() | else() | ||||
| # Creates verbose .def file (51KB vs 18KB) | |||||
| set_target_properties(${OpenBLAS_LIBNAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS true) | |||||
| endif() | endif() | ||||
| endif() | endif() | ||||
| # Set output for libopenblas | # Set output for libopenblas | ||||
| set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) | set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) | ||||
| set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES LIBRARY_OUTPUT_NAME_DEBUG "${OpenBLAS_LIBNAME}_d") | set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES LIBRARY_OUTPUT_NAME_DEBUG "${OpenBLAS_LIBNAME}_d") | ||||
| # Creates verbose .def file (51KB vs 18KB) | |||||
| set_target_properties( ${OpenBLAS_LIBNAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) | |||||
| foreach (OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) | foreach (OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) | ||||
| string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG ) | string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG ) | ||||
| @@ -24,23 +24,32 @@ skip_commits: | |||||
| message: /\[av skip\]/ | message: /\[av skip\]/ | ||||
| environment: | environment: | ||||
| global: | |||||
| CONDA_INSTALL_LOCN: C:\\Miniconda36-x64 | |||||
| matrix: | matrix: | ||||
| - COMPILER: clang-cl | - COMPILER: clang-cl | ||||
| DYNAMIC_ARCH: ON | |||||
| WITH_FORTRAN: yes | |||||
| - COMPILER: clang-cl | - COMPILER: clang-cl | ||||
| DYNAMIC_ARCH: ON | |||||
| WITH_FORTRAN: no | |||||
| - COMPILER: cl | - COMPILER: cl | ||||
| install: | install: | ||||
| - if [%COMPILER%]==[clang-cl] call C:\Miniconda36-x64\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 | ||||
| - if [%COMPILER%]==[clang-cl] conda install --yes clangdev ninja cmake | |||||
| - if [%WITH_FORTRAN%]==[yes] conda config --add channels isuruf/label/flang --force | |||||
| - if [%COMPILER%]==[clang-cl] conda install --yes --quiet clangdev ninja cmake | |||||
| - if [%WITH_FORTRAN%]==[yes] conda install --yes --quiet flangdev clangdev cmake | |||||
| - if [%COMPILER%]==[clang-cl] call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 | - if [%COMPILER%]==[clang-cl] call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 | ||||
| - if [%COMPILER%]==[clang-cl] set "LIB=%CONDA_INSTALL_LOCN%\Library\lib;%LIB%" | |||||
| - if [%COMPILER%]==[clang-cl] set "CPATH=%CONDA_INSTALL_LOCN%\Library\include;%CPATH%" | |||||
| before_build: | before_build: | ||||
| - echo Running cmake... | - echo Running cmake... | ||||
| - cd c:\projects\OpenBLAS | - cd c:\projects\OpenBLAS | ||||
| - if [%COMPILER%]==[cl] cmake -G "Visual Studio 12 Win64" . | - if [%COMPILER%]==[cl] cmake -G "Visual Studio 12 Win64" . | ||||
| - if [%COMPILER%]==[clang-cl] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl . | |||||
| - if [%WITH_FORTRAN%]==[no] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl . | |||||
| - 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 . | |||||
| - if [%DYNAMIC_ARCH%]==[ON] cmake -DDYNAMIC_ARCH=ON . | - if [%DYNAMIC_ARCH%]==[ON] cmake -DDYNAMIC_ARCH=ON . | ||||
| build_script: | build_script: | ||||
| @@ -20,12 +20,6 @@ | |||||
| # NEEDBUNDERSCORE | # NEEDBUNDERSCORE | ||||
| # NEED2UNDERSCORES | # NEED2UNDERSCORES | ||||
| if (MSVC) | |||||
| # had to do this for MSVC, else CMake automatically assumes I have ifort... -hpa | |||||
| include(CMakeForceCompiler) | |||||
| CMAKE_FORCE_Fortran_COMPILER(gfortran GNU) | |||||
| endif () | |||||
| if (NOT NO_LAPACK) | if (NOT NO_LAPACK) | ||||
| enable_language(Fortran) | enable_language(Fortran) | ||||
| else() | else() | ||||
| @@ -38,7 +32,6 @@ if (NOT ONLY_CBLAS) | |||||
| # TODO: detect whether underscore needed, set #defines and BU appropriately - use try_compile | # TODO: detect whether underscore needed, set #defines and BU appropriately - use try_compile | ||||
| # TODO: set FEXTRALIB flags a la f_check? | # TODO: set FEXTRALIB flags a la f_check? | ||||
| set(BU "_") | set(BU "_") | ||||
| file(APPEND ${TARGET_CONF_TEMP} | file(APPEND ${TARGET_CONF_TEMP} | ||||
| "#define BUNDERSCORE _\n" | "#define BUNDERSCORE _\n" | ||||
| @@ -132,7 +132,9 @@ set(CLASRC | |||||
| DEPRECATED/cgegs.f DEPRECATED/cgegv.f cgehd2.f cgehrd.f cgelq2.f cgelqf.f | DEPRECATED/cgegs.f DEPRECATED/cgegv.f cgehd2.f cgehrd.f cgelq2.f cgelqf.f | ||||
| cgels.f cgelsd.f cgelss.f DEPRECATED/cgelsx.f cgelsy.f cgeql2.f cgeqlf.f cgeqp3.f | cgels.f cgelsd.f cgelss.f DEPRECATED/cgelsx.f cgelsy.f cgeql2.f cgeqlf.f cgeqp3.f | ||||
| DEPRECATED/cgeqpf.f cgeqr2.f cgeqr2p.f cgeqrf.f cgeqrfp.f cgerfs.f | DEPRECATED/cgeqpf.f cgeqr2.f cgeqr2p.f cgeqrf.f cgeqrfp.f cgerfs.f | ||||
| cgerq2.f cgerqf.f cgesc2.f cgesdd.f cgesvd.f | |||||
| cgerq2.f cgerqf.f cgesc2.f cgesdd.f cgesvd.f cgejsv.f cgesvdx.f cgesvj.f | |||||
| cgetrf2.f cgges3.f cggev3.f cgghd3.f cggsvd3.f cggsvp3.f cpotrf2.f csysv_aa.f | |||||
| csytrs_aa.f cgsvj0.f cgsvj1.f cunm22.f csytrf_aa.f clasyf_aa.f | |||||
| cgesvx.f cgetc2.f cgetri.f | cgesvx.f cgetc2.f cgetri.f | ||||
| cggbak.f cggbal.f cgges.f cggesx.f cggev.f cggevx.f cggglm.f | cggbak.f cggbal.f cgges.f cggesx.f cggev.f cggevx.f cggglm.f | ||||
| cgghrd.f cgglse.f cggqrf.f cggrqf.f | cgghrd.f cgglse.f cggqrf.f cggrqf.f | ||||
| @@ -362,6 +364,26 @@ set(ZLASRC | |||||
| zlarfy.f | zlarfy.f | ||||
| ) | ) | ||||
| set(SCATGEN slatm1.f slaran.f slarnd.f) | |||||
| set(SMATGEN slatms.f slatme.f slatmr.f slatmt.f | |||||
| slagge.f slagsy.f slakf2.f slarge.f slaror.f slarot.f slatm2.f | |||||
| slatm3.f slatm5.f slatm6.f slatm7.f slahilb.f) | |||||
| set(CMATGEN clatms.f clatme.f clatmr.f clatmt.f | |||||
| clagge.f claghe.f clagsy.f clakf2.f clarge.f claror.f clarot.f | |||||
| clatm1.f clarnd.f clatm2.f clatm3.f clatm5.f clatm6.f clahilb.f slatm7.f) | |||||
| set(DZATGEN dlatm1.f dlaran.f dlarnd.f) | |||||
| set(DMATGEN dlatms.f dlatme.f dlatmr.f dlatmt.f | |||||
| dlagge.f dlagsy.f dlakf2.f dlarge.f dlaror.f dlarot.f dlatm2.f | |||||
| dlatm3.f dlatm5.f dlatm6.f dlatm7.f dlahilb.f) | |||||
| set(ZMATGEN zlatms.f zlatme.f zlatmr.f zlatmt.f | |||||
| zlagge.f zlaghe.f zlagsy.f zlakf2.f zlarge.f zlaror.f zlarot.f | |||||
| zlatm1.f zlarnd.f zlatm2.f zlatm3.f zlatm5.f zlatm6.f zlahilb.f dlatm7.f) | |||||
| set(LA_REL_SRC ${ALLAUX}) | set(LA_REL_SRC ${ALLAUX}) | ||||
| if (BUILD_SINGLE) | if (BUILD_SINGLE) | ||||
| list(APPEND LA_REL_SRC ${SLASRC} ${DSLASRC} ${SCLAUX}) | list(APPEND LA_REL_SRC ${SLASRC} ${DSLASRC} ${SCLAUX}) | ||||
| @@ -379,9 +401,27 @@ if (BUILD_COMPLEX16) | |||||
| list(APPEND LA_REL_SRC ${ZLASRC} ${ZCLASRC} ${DZLAUX}) | list(APPEND LA_REL_SRC ${ZLASRC} ${ZCLASRC} ${DZLAUX}) | ||||
| endif () | endif () | ||||
| set(MATGEN_SRC "") | |||||
| if(BUILD_SINGLE) | |||||
| list(APPEND MATGEN_SRC ${SMATGEN} ${SCATGEN}) | |||||
| endif() | |||||
| if(BUILD_DOUBLE) | |||||
| list(APPEND MATGEN_SRC ${ALLOBJ} ${DMATGEN} ${DZATGEN}) | |||||
| endif() | |||||
| if(BUILD_COMPLEX) | |||||
| list(APPEND MATGEN_SRC ${ALLOBJ} ${CMATGEN} ${SCATGEN}) | |||||
| endif() | |||||
| if(BUILD_COMPLEX16) | |||||
| list(APPEND MATGEN_SRC ${ALLOBJ} ${ZMATGEN} ${DZATGEN}) | |||||
| endif() | |||||
| # add lapack-netlib folder to the sources | # add lapack-netlib folder to the sources | ||||
| set(LA_SOURCES "") | set(LA_SOURCES "") | ||||
| foreach (LA_FILE ${LA_REL_SRC}) | foreach (LA_FILE ${LA_REL_SRC}) | ||||
| list(APPEND LA_SOURCES "${NETLIB_LAPACK_DIR}/SRC/${LA_FILE}") | list(APPEND LA_SOURCES "${NETLIB_LAPACK_DIR}/SRC/${LA_FILE}") | ||||
| endforeach () | endforeach () | ||||
| foreach (LA_FILE ${MATGEN_SRC}) | |||||
| list(APPEND LA_SOURCES "${NETLIB_LAPACK_DIR}/TESTING/MATGEN/${LA_FILE}") | |||||
| endforeach () | |||||
| set_source_files_properties(${LA_SOURCES} PROPERTIES COMPILE_FLAGS "${LAPACK_FFLAGS}") | set_source_files_properties(${LA_SOURCES} PROPERTIES COMPILE_FLAGS "${LAPACK_FFLAGS}") | ||||
| @@ -1,5 +1,5 @@ | |||||
| set(C_SRC | |||||
| set(CSRC | |||||
| lapacke_cbbcsd.c | lapacke_cbbcsd.c | ||||
| lapacke_cbbcsd_work.c | lapacke_cbbcsd_work.c | ||||
| lapacke_cbdsqr.c | lapacke_cbdsqr.c | ||||
| @@ -1839,6 +1839,12 @@ set(ZSRC | |||||
| lapacke_zhbevd_work.c | lapacke_zhbevd_work.c | ||||
| lapacke_zhbevx.c | lapacke_zhbevx.c | ||||
| lapacke_zhbevx_work.c | lapacke_zhbevx_work.c | ||||
| lapacke_zhbev_2stage.c | |||||
| lapacke_zhbev_2stage_work.c | |||||
| lapacke_zhbevd_2stage.c | |||||
| lapacke_zhbevd_2stage_work.c | |||||
| lapacke_zhbevx_2stage.c | |||||
| lapacke_zhbevx_2stage_work.c | |||||
| lapacke_zhbgst.c | lapacke_zhbgst.c | ||||
| lapacke_zhbgst_work.c | lapacke_zhbgst_work.c | ||||
| lapacke_zhbgv.c | lapacke_zhbgv.c | ||||
| @@ -2363,7 +2369,7 @@ lapacke_dpb_nancheck.c lapacke_sst_nancheck.c | |||||
| lapacke_dpb_trans.c lapacke_ssy_nancheck.c | lapacke_dpb_trans.c lapacke_ssy_nancheck.c | ||||
| ) | ) | ||||
| set(LAPACKE_REL_SRC "") | |||||
| set(LAPACKE_REL_SRC "${MATGEN}") | |||||
| if (BUILD_SINGLE) | if (BUILD_SINGLE) | ||||
| list(APPEND LAPACKE_REL_SRC ${SSRC}) | list(APPEND LAPACKE_REL_SRC ${SSRC}) | ||||
| endif () | endif () | ||||