+list_set CFLAGS @SMPI_C_FLAGS@
+list_add LINKARGS
+if [ "x@WIN32@" = "x1" ]; then
+ list_add CFLAGS "-include" "@includedir@/smpi/smpi_main.h"
+ list_add LINKARGS "@libdir@\libsimgrid.dll"
+elif [ "x@APPLE@" = "x1" ]; then
+ list_add CFLAGS "-include" "@includedir@/smpi/smpi_helpers.h"
+ list_add CFLAGS "-fPIC"
+ if [ "x${SMPI_PRETEND_CC}" = "x" ]; then
+ list_add LINKARGS "-shared"
+ else
+ echo "Warning: smpicc pretends to be a regular compiler (SMPI_PRETEND_CC is set). Produced binaries will not be usable in SimGrid."
+ fi
+ list_add LINKARGS "-lsimgrid" ${LINKER_UNDEFINED_ERROR:+"-Wl,-undefined,error"}
+else
+ list_add CFLAGS "-include" "@includedir@/smpi/smpi_helpers.h"
+ list_add CFLAGS "-fPIC"
+ if [ "x${SMPI_PRETEND_CC}" = "x" ]; then
+ list_add LINKARGS "-shared"
+ else
+ echo "Warning: smpicc pretends to be a regular compiler (SMPI_PRETEND_CC is set). Produced binaries will not be usable in SimGrid."
+ fi
+ list_add LINKARGS "-lsimgrid" ${LINKER_UNDEFINED_ERROR:+"-Wl,-z,defs"}
+fi
+
+list_set CMDARGS
+while [ $# -gt 0 ]; do
+ ARG="$1"
+ shift
+ case "${ARG}" in
+ -c)
+ CMAKE_LINKARGS=""
+ LINKARGS=""
+ list_add CMDARGS "-c"
+ ;;
+ *.c)
+ SRCFILE="$(readlink -f ${ARG} 2>/dev/null)"
+ if [ -z "$SRCFILE" ] ; then
+ SRCFILE="$ARG"
+ fi
+ list_add CMDARGS "${SRCFILE}"
+ ;;
+ '-version' | '--version')
+ printf '%b\n' "$SIMGRID_VERSION"
+ exit 0
+ ;;
+ "-git-version" | "--git-version")
+ printf '%b\n' "$SIMGRID_GITHASH"
+ exit 0
+ ;;
+ '-trace-call-location')
+ list_add_not_empty CMDARGS "-DTRACE_CALL_LOCATION"
+ ;;
+ '-compiler-version' | '--compiler-version')
+ ${CC} --version
+ ;;
+ '-show'|'-compile-info'|'-link-info')
+ # Dry run displaying commands instead of executing them. Useful to cmake
+ show=1
+ ;;
+ *)
+ list_add CMDARGS "${ARG}"
+ ;;
+ esac