Skip to content

Commit

Permalink
Default to C++20 standard for builds.
Browse files Browse the repository at this point in the history
  • Loading branch information
johnoel committed Jan 30, 2024
1 parent 6676b92 commit 6e0af9c
Show file tree
Hide file tree
Showing 7 changed files with 88 additions and 27 deletions.
2 changes: 2 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ ADMB-13.2

* Added ADMB Docker Image scripts to automate building uploads.

* Defaults to ISO/IEC C++20 standard for latest compilers.

ADMB-13.1
---------
*Released December 23, 2022*
Expand Down
10 changes: 5 additions & 5 deletions scripts/admb/admb
Original file line number Diff line number Diff line change
Expand Up @@ -310,14 +310,14 @@ elif [ "$CXX" == "g++" ]; then
CXXFLAGS="-std=c++14 $CXXFLAGS"
LDFLAGS="-std=c++14 $LDFLAGS"
elif [ "$GCCMAJVER" == "9" ]; then
CXXFLAGS="-std=c++14 $CXXFLAGS"
LDFLAGS="-std=c++14 $LDFLAGS"
CXXFLAGS="-std=c++17 $CXXFLAGS"
LDFLAGS="-std=c++17 $LDFLAGS"
elif [ "$GCCMAJVER" == "10" ]; then
CXXFLAGS="-std=c++14 $CXXFLAGS"
LDFLAGS="-std=c++14 $LDFLAGS"
else
CXXFLAGS="-std=c++17 $CXXFLAGS"
LDFLAGS="-std=c++17 $LDFLAGS"
else
CXXFLAGS="-std=c++20 $CXXFLAGS"
LDFLAGS="-std=c++20 $LDFLAGS"
fi
fi
CXXFLAGS="$CXXFLAGS -D_USE_MATH_DEFINES"
Expand Down
19 changes: 10 additions & 9 deletions scripts/admb/admb.bat
Original file line number Diff line number Diff line change
Expand Up @@ -178,11 +178,12 @@ if "!CXX!"=="cl" (
echo Error: Unable to find !CXX!
exit /B 1
)
set CPPSTD=17
set LD=!CXX!
if defined CXXFLAGS (
set CXXFLAGS= /c /nologo /std:c++17 /EHsc !CXXFLAGS!
set CXXFLAGS= /c /nologo /std:c++!CPPSTD! /EHsc !CXXFLAGS!
) else (
set CXXFLAGS= /c /nologo /std:c++17 /EHsc
set CXXFLAGS= /c /nologo /std:c++!CPPSTD! /EHsc
)
if defined g (
set CXXFLAGS=!CXXFLAGS! /Z7
Expand Down Expand Up @@ -216,7 +217,7 @@ if "!CXX!"=="cl" (
)
)
if defined fast (
set CXXFLAGS=!CXXFLAGS! /nologo /std:c++17 /DOPT_LIB
set CXXFLAGS=!CXXFLAGS! /nologo /std:c++!CPPSTD! /DOPT_LIB
if defined g (
if exist "!ADMB_HOME!\lib\admb-contribo!OSNAME!!CXXVERSION!-debug.lib" (
set libs="!ADMB_HOME!\lib\admb-contribo!OSNAME!!CXXVERSION!-debug.lib" /link
Expand Down Expand Up @@ -689,9 +690,9 @@ if not defined tpls (
) else (
if "!CXX!"=="cl" (
if defined output (
set CMD=!LD!!LDFLAGS! /nologo /std:c++17 /Fe!output! !objs! !libs!
set CMD=!LD!!LDFLAGS! /nologo /std:c++!CPPSTD! /Fe!output! !objs! !libs!
) else (
set CMD=!LD!!LDFLAGS! /nologo /std:c++17 /Fe!main!.exe !objs! !libs!
set CMD=!LD!!LDFLAGS! /nologo /std:c++!CPPSTD! /Fe!main!.exe !objs! !libs!
)
) else (
if defined output (
Expand Down Expand Up @@ -754,15 +755,15 @@ if not defined tpls (
if "!CXX!"=="cl" (
if defined objs (
if defined output (
set CMD=!LD!!LDFLAGS! /nologo /std:c++17 /Fe!output! !tpl!.obj !objs! !libs!
set CMD=!LD!!LDFLAGS! /nologo /std:c++!CPPSTD! /Fe!output! !tpl!.obj !objs! !libs!
) else (
set CMD=!LD!!LDFLAGS! /nologo /std:c++17 /Fe!tpl!.exe !tpl!.obj !objs! !libs!
set CMD=!LD!!LDFLAGS! /nologo /std:c++!CPPSTD! /Fe!tpl!.exe !tpl!.obj !objs! !libs!
)
) else (
if defined output (
set CMD=!LD!!LDFLAGS! /nologo /std:c++17 /Fe!output! !tpl!.obj !libs!
set CMD=!LD!!LDFLAGS! /nologo /std:c++!CPPSTD! /Fe!output! !tpl!.obj !libs!
) else (
set CMD=!LD!!LDFLAGS! /nologo /std:c++17 /Fe!tpl!.exe !tpl!.obj !libs!
set CMD=!LD!!LDFLAGS! /nologo /std:c++!CPPSTD! /Fe!tpl!.exe !tpl!.obj !libs!
)
)
) else (
Expand Down
10 changes: 5 additions & 5 deletions scripts/admb/admb.sh
Original file line number Diff line number Diff line change
Expand Up @@ -318,14 +318,14 @@ elif [ "$CXX" == "g++" ]; then
CXXFLAGS="-std=c++14 $CXXFLAGS"
LDFLAGS="-std=c++14 $LDFLAGS"
elif [ "$GCCMAJVER" == "9" ]; then
CXXFLAGS="-std=c++14 $CXXFLAGS"
LDFLAGS="-std=c++14 $LDFLAGS"
CXXFLAGS="-std=c++17 $CXXFLAGS"
LDFLAGS="-std=c++17 $LDFLAGS"
elif [ "$GCCMAJVER" == "10" ]; then
CXXFLAGS="-std=c++14 $CXXFLAGS"
LDFLAGS="-std=c++14 $LDFLAGS"
else
CXXFLAGS="-std=c++17 $CXXFLAGS"
LDFLAGS="-std=c++17 $LDFLAGS"
else
CXXFLAGS="-std=c++20 $CXXFLAGS"
LDFLAGS="-std=c++20 $LDFLAGS"
fi
fi
CXXFLAGS="$CXXFLAGS -D_USE_MATH_DEFINES"
Expand Down
12 changes: 6 additions & 6 deletions src/GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -217,11 +217,11 @@ ifeq ($(CMDSHELL),cmd)
else ifeq (GCCVER8,$(findstring GCCVER8,$(GCCMAJVER)))
ADCXXFLAGS:= -std=c++14 $(ADCXXFLAGS)
else ifeq (GCCVER9,$(findstring GCCVER9,$(GCCMAJVER)))
ADCXXFLAGS:= -std=c++14 $(ADCXXFLAGS)
ADCXXFLAGS:= -std=c++17 $(ADCXXFLAGS)
else ifeq (GCCVER10,$(findstring GCCVER10,$(GCCMAJVER)))
ADCXXFLAGS:= -std=c++14 $(ADCXXFLAGS)
else
ADCXXFLAGS:= -std=c++17 $(ADCXXFLAGS)
else
ADCXXFLAGS:= -std=c++20 $(ADCXXFLAGS)
endif
endif
endif
Expand Down Expand Up @@ -262,11 +262,11 @@ else
else ifeq ("$(GCCMAJVER)","8")
ADCXXFLAGS:= -std=c++14 $(ADCXXFLAGS)
else ifeq ("$(GCCMAJVER)","9")
ADCXXFLAGS:= -std=c++14 $(ADCXXFLAGS)
ADCXXFLAGS:= -std=c++17 $(ADCXXFLAGS)
else ifeq ("$(GCCMAJVER)","10")
ADCXXFLAGS:= -std=c++14 $(ADCXXFLAGS)
else
ADCXXFLAGS:= -std=c++17 $(ADCXXFLAGS)
else
ADCXXFLAGS:= -std=c++20 $(ADCXXFLAGS)
endif
endif
endif
Expand Down
6 changes: 4 additions & 2 deletions src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ CXXVERSION=-cl19
CXXVERSION=-cl
!ENDIF

CPPSTD=17

!IF ([cl 2>&1 | findstr " x64" > nul] == 0)
OSNAME=win64
!ELSE
Expand All @@ -30,8 +32,8 @@ CXXFLAGS_OPT=/nologo /Z7 /W4 /wd6001 /wd4100 /wd4239 /GF /EHsc /DDEBUG /D_USE_MA
!ENDIF
!ELSE
OBJDESTDIR=..\build\objects\$(OSNAME)$(CXXVERSION)
CXXFLAGS_SAF=/nologo /std:c++17 /O2 /W4 /wd6001 /wd4100 /wd4239 /GF /EHsc$(SAFE_ALL) /D_USE_MATH_DEFINES /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_DEPRECATE /I$(DESTDIR)\include
CXXFLAGS_OPT=/nologo /std:c++17 /O2 /W4 /wd6001 /wd4100 /wd4239 /GF /EHsc /DOPT_LIB /D_USE_MATH_DEFINES /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_DEPRECATE /I$(DESTDIR)\include
CXXFLAGS_SAF=/nologo /std:c++$(CPPSTD) /O2 /W4 /wd6001 /wd4100 /wd4239 /GF /EHsc$(SAFE_ALL) /D_USE_MATH_DEFINES /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_DEPRECATE /I$(DESTDIR)\include
CXXFLAGS_OPT=/nologo /std:c++$(CPPSTD) /O2 /W4 /wd6001 /wd4100 /wd4239 /GF /EHsc /DOPT_LIB /D_USE_MATH_DEFINES /D_CRT_SECURE_NO_WARNINGS /D_CRT_NONSTDC_NO_DEPRECATE /I$(DESTDIR)\include
!ENDIF

!INCLUDE df1b2-separable\objects.lst
Expand Down
56 changes: 56 additions & 0 deletions src/out.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
linad99/cmpdif4.cpp: fwrite((double*)v.va + min, sizeof(double) * static_cast<size_t>(max - min + 1));
linad99/cmpdif5.cpp: size_t size = static_cast<size_t>(max - min + 1);
linad99/cmpdif6.cpp: size_t size = static_cast<size_t>(max - min + 1);
linad99/conjprod.cpp: int size = static_cast<int>(d.size());
linad99/cranfill.cpp: double x = norm(vec) / sqrt(static_cast<double>(vec.size()));
linad99/d4arr.cpp: t -= static_cast<int>(hsl);
linad99/df11fun.cpp: static_cast<unsigned int>(max < min ? 0 : max - min + 1)];
linad99/df12fun.cpp: static_cast<unsigned int>(max < min ? 0 : max - min + 1)];
linad99/df13fun.cpp: static_cast<unsigned int>(max < min ? 0 : max - min + 1)];
linad99/df_file2.cpp: if (toffset < static_cast<OFF_T>(num_bytes))
linad99/df_file.cpp: lpos = LSEEK(file_ptr, -static_cast<OFF_T>(buff_size), SEEK_CUR);
linad99/dfsdmat.cpp: m=new double*[static_cast<unsigned int>(n)];
linad99/dmat10.cpp: unsigned int cols = static_cast<unsigned int>(columns[i]);
linad99/dmat34.cpp: return static_cast<int>(colsize);
linad99/dmat38.cpp: return static_cast<int>(colsize);
linad99/dmat3.cpp: int n = static_cast<int>(a.colsize());
linad99/dmat.cpp: m = static_cast<dvector*>(shape->get_pointer());
linad99/dtweedie.cpp: return static_cast<double>(a) >= v ? a : static_cast<unsigned int>(v);
linad99/dvect15.cpp: dvector results(1, static_cast<int>(a.size() + b.size()));
linad99/dvect8.cpp: elem(i) = static_cast<double>(u.elem(i));
linad99/dvect9.cpp: if ((v = new double[static_cast<unsigned int>(count + 2)]) ==0)
linad99/dvector.cpp: unsigned int size = static_cast<unsigned int>(nch - ncl + 1);
linad99/dvector.h: return static_cast<unsigned int>(index_max - index_min + 1);
linad99/dveigen.cpp: int n = static_cast<int>(d.size());
linad99/dveigenv.cpp: int n = static_cast<int>(d.size());
linad99/dvsort2.cpp: iq=l+((ir-l+1)*static_cast<int>(fx))/FM;
linad99/eigen.cpp: int n = static_cast<int>(d.size());
linad99/eigenv.cpp: int n = static_cast<int>(d.size());
linad99/expm.cpp: return static_cast<int>(colsize);
linad99/fmm_cont.cpp: scroll_flag = static_cast<int>(ipar[5]);
linad99/fmmtr1.cpp: if (g.size() < static_cast<unsigned int>(n))
linad99/fvar_a10.cpp: const int n = static_cast<int>(len);
linad99/fvar.hpp: return static_cast<unsigned int>(indexmax() - indexmin() + 1);
linad99/fvar_m10.cpp: unsigned int column = static_cast<unsigned int>(columns[i]);
linad99/fvar_m15.cpp: int n = static_cast<int>(aa.colsize());
linad99/fvar_m20.cpp: int n = static_cast<int>(aa.colsize());
linad99/fvar_m24.cpp: int n = static_cast<int>(aa.colsize());
linad99/fvar_m42.cpp: int n = static_cast<int>(aa.colsize());
linad99/fvar_ma4.cpp: int n = static_cast<int>(a.colsize());
linad99/fvar_mat.cpp: m = static_cast<dvar_vector*>(shape->get_pointer());
linad99/gradstrc.cpp: MAX_NVAR_OFFSET = static_cast<unsigned int>(i);
linad99/i4arr.cpp: t = static_cast<i3_array*>(shape->get_truepointer());
linad99/i5arr.cpp: t = static_cast<i4_array*>(shape->get_truepointer());
linad99/imat.cpp: m = static_cast<ivector*>(shape->get_pointer());
linad99/imatrix.h: return static_cast<unsigned int>(colmax() - colmin() + 1);
linad99/indextyp.cpp: unsigned int ss = static_cast<unsigned int>(
linad99/ivector.cpp: if ((v = new int[static_cast<unsigned int>(nch - ncl + 1)]) == 0 )
linad99/ivector.h: return static_cast<unsigned int>(
linad99/ivsort2.cpp: iq=l+((ir-l+1)*static_cast<int>(fx))/FM;
linad99/minim.cpp: int nvar = static_cast<int>(x.size());
linad99/newfmin.cpp: if (g.size() < static_cast<unsigned int>(n))
linad99/ranfill.cpp: r[j]=static_cast<float>(ix1)+r[j];
linad99/sgradclc.cpp: if (g.size() < static_cast<unsigned int>(nvar))
linad99/timer.cpp: return static_cast<double>(diff);
linad99/tweedie_logW.cpp: unsigned int jh = static_cast<unsigned int>(ceil(j));
linad99/xgradclc.cpp: int nlinks = static_cast<int>(GRAD_LIST->nlinks);

0 comments on commit 6e0af9c

Please sign in to comment.