@@ -221,6 +221,15 @@ string stripComments(string str)
221221 while (i < length)
222222 {
223223 // Don't parse comments inside strings
224+ if (str[i] == ' `' )
225+ {
226+ size_t left = i;
227+ i++ ;
228+ while (i < length && str[i] != ' `' )
229+ i++ ;
230+ i++ ; // Skip '`'
231+ ret~= str[left.. i];
232+ }
224233 if (str[i] == ' "' )
225234 {
226235 size_t left = i;
@@ -565,3 +574,184 @@ subPackage {
565574ED";
566575 sdlToJSON(parseSDL(null, testSdl));
567576}
577+
578+
579+
580+ unittest
581+ {
582+ enum testSdl =q"ED
583+
584+ configuration "mkl-tbb-thread" {
585+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\ia32\vc_mt\"` platform="windows-x86-dmd"
586+ }
587+
588+ }
589+ ED";
590+ stripComments(testSdl);
591+ }
592+
593+ unittest
594+ {
595+
596+ enum testSdl = q"ED
597+ name "mir-blas"
598+ description "ndslice wrapper for BLAS"
599+ authors "Ilya Yaroshenko"
600+ copyright "Copyright © 2017-2018, Symmetry Investments & Kaleidic Associates"
601+ license "BSL-1.0"
602+
603+ dependency "cblas" version=">=2.0.4"
604+ dependency "mir-algorithm" version=">=2.0.0-beta2 <4.0.0"
605+
606+ configuration "library" {
607+ platforms "posix" "windows-x86_64" "windows-x86"
608+
609+ // Posix: "openblas" configuration
610+
611+ versions "OPENBLAS" platform="posix"
612+ libs "openblas" platform="posix"
613+ lflags "-L/opt/homebrew/opt/openblas/lib" platform="darwin"
614+
615+ // Windows: "mkl-sequential-ilp" configuration
616+
617+ versions "INTEL_MKL" "BLASNATIVEINT" "LAPACKNATIVEINT" platform="windows"
618+
619+ platforms "x86_64" "x86"
620+ libs "mkl_core" "mkl_sequential" "mkl_intel_c" platform="windows-x86"
621+ libs "mkl_core" "mkl_sequential" "mkl_intel_ilp64" platform="windows-x86_64"
622+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64` platform="windows-x86_64-ldc"
623+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32` platform="windows-x86-ldc"
624+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64\"` platform="windows-x86_64-dmd"
625+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32\"` platform="windows-x86-dmd"
626+ }
627+
628+ configuration "openblas" {
629+ versions "OPENBLAS"
630+ libs "openblas"
631+ lflags "-L/opt/homebrew/opt/openblas/lib" platform="darwin"
632+ }
633+
634+ configuration "blas" {
635+ libs "blas" # CBLAS API assumed to be in BLAS
636+ }
637+
638+ configuration "cblas" {
639+ libs "cblas" # BLAS API assumed to be in CBLAS
640+ }
641+
642+ configuration "twolib" {
643+ libs "blas" "cblas"
644+ }
645+
646+ configuration "zerolib" {
647+ systemDependencies "mir-blas configuration 'zerolib' requires user to specify libraries to link."
648+ }
649+
650+ configuration "mkl-sequential" {
651+ platforms "x86_64" "x86"
652+ versions "INTEL_MKL"
653+ libs "mkl_core" "mkl_sequential" "mkl_intel_c" platform="x86"
654+ libs "mkl_core" "mkl_sequential" "mkl_intel_lp64" platform="x86_64"
655+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64` platform="windows-x86_64-ldc"
656+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32` platform="windows-x86-ldc"
657+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64\"` platform="windows-x86_64-dmd"
658+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32\"` platform="windows-x86-dmd"
659+ }
660+ configuration "mkl-sequential-ilp" {
661+ platforms "x86_64" "x86"
662+ versions "INTEL_MKL" "BLASNATIVEINT" "LAPACKNATIVEINT"
663+ libs "mkl_core" "mkl_sequential" "mkl_intel_c" platform="x86"
664+ libs "mkl_core" "mkl_sequential" "mkl_intel_ilp64" platform="x86_64"
665+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64` platform="windows-x86_64-ldc"
666+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32` platform="windows-x86-ldc"
667+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64\"` platform="windows-x86_64-dmd"
668+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32\"` platform="windows-x86-dmd"
669+ }
670+ configuration "mkl-tbb-thread" {
671+ platforms "x86_64" "x86"
672+ versions "INTEL_MKL"
673+ libs "tbb" "mkl_core" "mkl_tbb_thread" "mkl_intel_c" platform="x86"
674+ libs "tbb" "mkl_core" "mkl_tbb_thread" "mkl_intel_lp64" platform="x86_64"
675+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64` platform="windows-x86_64-ldc"
676+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32` platform="windows-x86-ldc"
677+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64\"` platform="windows-x86_64-dmd"
678+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32\"` platform="windows-x86-dmd"
679+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\intel64\vc_mt` platform="windows-x86_64-ldc"
680+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\ia32\vc_mt` platform="windows-x86-ldc"
681+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\intel64\vc_mt\"` platform="windows-x86_64-dmd"
682+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\ia32\vc_mt\"` platform="windows-x86-dmd"
683+ copyFiles `C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\redist\intel64\tbb\vc_mt\tbb.dll` platform="windows-x86_64"
684+ copyFiles `C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\redist\ia32\tbb\vc_mt\tbb.dll` platform="windows-x86"
685+ }
686+ configuration "mkl-tbb-thread-ilp" {
687+ platforms "x86_64" "x86"
688+ versions "INTEL_MKL" "BLASNATIVEINT" "LAPACKNATIVEINT"
689+ libs "tbb" "mkl_core" "mkl_tbb_thread" "mkl_intel_c" platform="x86"
690+ libs "tbb" "mkl_core" "mkl_tbb_thread" "mkl_intel_ilp64" platform="x86_64"
691+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64` platform="windows-x86_64-ldc"
692+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32` platform="windows-x86-ldc"
693+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64\"` platform="windows-x86_64-dmd"
694+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32\"` platform="windows-x86-dmd"
695+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\intel64\vc_mt` platform="windows-x86_64-ldc"
696+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\ia32\vc_mt` platform="windows-x86-ldc"
697+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\intel64\vc_mt\"` platform="windows-x86_64-dmd"
698+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\ia32\vc_mt\"` platform="windows-x86-dmd"
699+ copyFiles `C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\redist\intel64\tbb\vc_mt\tbb.dll` platform="windows-x86_64"
700+ copyFiles `C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\redist\ia32\tbb\vc_mt\tbb.dll` platform="windows-x86"
701+ }
702+ configuration "mkl-sequential-dll" {
703+ platforms "x86_64" "x86"
704+ versions "INTEL_MKL"
705+ libs "mkl_core_dll" "mkl_sequential_dll" "mkl_intel_c_dll" platform="x86"
706+ libs "mkl_core_dll" "mkl_sequential_dll" "mkl_intel_lp64_dll" platform="x86_64"
707+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64` platform="windows-x86_64-ldc"
708+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32` platform="windows-x86-ldc"
709+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64\"` platform="windows-x86_64-dmd"
710+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32\"` platform="windows-x86-dmd"
711+ }
712+ configuration "mkl-sequential-ilp-dll" {
713+ platforms "x86_64" "x86"
714+ versions "INTEL_MKL" "BLASNATIVEINT" "LAPACKNATIVEINT"
715+ libs "mkl_core_dll" "mkl_sequential_dll" "mkl_intel_c_dll" platform="x86"
716+ libs "mkl_core_dll" "mkl_sequential_dll" "mkl_intel_ilp64_dll" platform="x86_64"
717+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64` platform="windows-x86_64-ldc"
718+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32` platform="windows-x86-ldc"
719+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64\"` platform="windows-x86_64-dmd"
720+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32\"` platform="windows-x86-dmd"
721+ }
722+ configuration "mkl-tbb-thread-dll" {
723+ platforms "x86_64" "x86"
724+ versions "INTEL_MKL"
725+ libs "tbb" "mkl_core_dll" "mkl_tbb_thread_dll" "mkl_intel_c_dll" platform="x86"
726+ libs "tbb" "mkl_core_dll" "mkl_tbb_thread_dll" "mkl_intel_lp64_dll" platform="x86_64"
727+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64` platform="windows-x86_64-ldc"
728+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32` platform="windows-x86-ldc"
729+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64\"` platform="windows-x86_64-dmd"
730+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32\"` platform="windows-x86-dmd"
731+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\intel64\vc_mt` platform="windows-x86_64-ldc"
732+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\ia32\vc_mt` platform="windows-x86-ldc"
733+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\intel64\vc_mt\"` platform="windows-x86_64-dmd"
734+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\ia32\vc_mt\"` platform="windows-x86-dmd"
735+ copyFiles `C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\redist\intel64\tbb\vc_mt\tbb.dll` platform="windows-x86_64"
736+ copyFiles `C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\redist\ia32\tbb\vc_mt\tbb.dll` platform="windows-x86"
737+ }
738+ configuration "mkl-tbb-thread-ilp-dll" {
739+ platforms "x86_64" "x86"
740+ versions "INTEL_MKL" "BLASNATIVEINT" "LAPACKNATIVEINT"
741+ libs "tbb" "mkl_core_dll" "mkl_tbb_thread_dll" "mkl_intel_c_dll" platform="x86"
742+ libs "tbb" "mkl_core_dll" "mkl_tbb_thread_dll" "mkl_intel_ilp64_dll" platform="x86_64"
743+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64` platform="windows-x86_64-ldc"
744+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32` platform="windows-x86-ldc"
745+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\intel64\"` platform="windows-x86_64-dmd"
746+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\lib\ia32\"` platform="windows-x86-dmd"
747+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\intel64\vc_mt` platform="windows-x86_64-ldc"
748+ lflags `/LIBPATH:C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\ia32\vc_mt` platform="windows-x86-ldc"
749+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\intel64\vc_mt\"` platform="windows-x86_64-dmd"
750+ lflags `/LIBPATH:\"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\lib\ia32\vc_mt\"` platform="windows-x86-dmd"
751+ copyFiles `C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\redist\intel64\tbb\vc_mt\tbb.dll` platform="windows-x86_64"
752+ copyFiles `C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\redist\ia32\tbb\vc_mt\tbb.dll` platform="windows-x86"
753+ }
754+ ED";
755+ assert(!sdlToJSON(parseSDL(null ,testSdl)).hasErrorOccurred);
756+
757+ }
0 commit comments