Browse Source

Merged compiler flag arguments, so that macro declarations can be given.

David Piuva 5 years ago
parent
commit
39cdb44982

+ 3 - 8
Doc/Generator/build.sh

@@ -10,20 +10,15 @@ ROOT_PATH=../../Source
 TEMP_DIR=${ROOT_PATH}/../../temporary
 # Select a window manager
 WINDOW_MANAGER=NONE
-# Select safe debug mode or fast release mode
-MODE=-DDEBUG #Debug mode
-#MODE=-DNDEBUG #Release mode
-# Select the version of C++
-CPP_VERSION=-std=c++14
-# Select optimization level
-O_LEVEL=-O2
+# Flags for the compiler
+COMPILER_FLAGS="-std=c++14 -O2"
 # Select external libraries
 LINKER_FLAGS=""
 
 # Give execution permission
 chmod +x ${ROOT_PATH}/tools/build.sh;
 # Compile everything
-${ROOT_PATH}/tools/build.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${MODE}" "${CPP_VERSION}" "${O_LEVEL}" "${LINKER_FLAGS}";
+${ROOT_PATH}/tools/build.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${COMPILER_FLAGS}" "${LINKER_FLAGS}";
 
 # Execute the generation script to see the changes
 chmod +x gen.sh

+ 4 - 8
Source/SDK/cube/build.sh

@@ -11,17 +11,13 @@ TEMP_DIR=${ROOT_PATH}/../../temporary
 # Select a window manager
 WINDOW_MANAGER=X11
 # Select safe debug mode or fast release mode
-MODE=-DDEBUG #Debug mode
-#MODE=-DNDEBUG #Release mode
-# Select the version of C++
-CPP_VERSION=-std=c++14
-# Select optimization level
-O_LEVEL=-O2
+#MODE=-DDEBUG #Debug mode
+MODE=-DNDEBUG #Release mode
+COMPILER_FLAGS="${MODE} -std=c++14 -O2"
 # Select external libraries
 LINKER_FLAGS=""
 
 # Give execution permission
 chmod +x ${ROOT_PATH}/tools/buildAndRun.sh;
 # Compile everything
-${ROOT_PATH}/tools/buildAndRun.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${MODE}" "${CPP_VERSION}" "${O_LEVEL}" "${LINKER_FLAGS}";
-
+${ROOT_PATH}/tools/buildAndRun.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${COMPILER_FLAGS}" "${LINKER_FLAGS}";

+ 4 - 8
Source/SDK/guiExample/build.sh

@@ -11,17 +11,13 @@ TEMP_DIR=${ROOT_PATH}/../../temporary
 # Select a window manager
 WINDOW_MANAGER=X11
 # Select safe debug mode or fast release mode
-MODE=-DDEBUG #Debug mode
-#MODE=-DNDEBUG #Release mode
-# Select the version of C++
-CPP_VERSION=-std=c++14
-# Select optimization level
-O_LEVEL=-O2
+#MODE=-DDEBUG #Debug mode
+MODE=-DNDEBUG #Release mode
+COMPILER_FLAGS="${MODE} -std=c++14 -O2"
 # Select external libraries
 LINKER_FLAGS=""
 
 # Give execution permission
 chmod +x ${ROOT_PATH}/tools/buildAndRun.sh;
 # Compile everything
-${ROOT_PATH}/tools/buildAndRun.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${MODE}" "${CPP_VERSION}" "${O_LEVEL}" "${LINKER_FLAGS}";
-
+${ROOT_PATH}/tools/buildAndRun.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${COMPILER_FLAGS}" "${LINKER_FLAGS}";

+ 2 - 6
Source/SDK/sandbox/build.sh

@@ -13,15 +13,11 @@ WINDOW_MANAGER=X11
 # Select safe debug mode or fast release mode
 #MODE=-DDEBUG #Debug mode
 MODE=-DNDEBUG #Release mode
-# Select the version of C++
-CPP_VERSION=-std=c++14
-# Select optimization level
-O_LEVEL=-O2
+COMPILER_FLAGS="${MODE} -std=c++14 -O2"
 # Select external libraries
 LINKER_FLAGS=""
 
 # Give execution permission
 chmod +x ${ROOT_PATH}/tools/buildAndRun.sh;
 # Compile everything
-${ROOT_PATH}/tools/buildAndRun.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${MODE}" "${CPP_VERSION}" "${O_LEVEL}" "${LINKER_FLAGS}";
-
+${ROOT_PATH}/tools/buildAndRun.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${COMPILER_FLAGS}" "${LINKER_FLAGS}";

+ 4 - 8
Source/SDK/terrain/build.sh

@@ -11,17 +11,13 @@ TEMP_DIR=${ROOT_PATH}/../../temporary
 # Select a window manager
 WINDOW_MANAGER=X11
 # Select safe debug mode or fast release mode
-MODE=-DDEBUG #Debug mode
-#MODE=-DNDEBUG #Release mode
-# Select the version of C++
-CPP_VERSION=-std=c++14
-# Select optimization level
-O_LEVEL=-O2
+#MODE=-DDEBUG #Debug mode
+MODE=-DNDEBUG #Release mode
+COMPILER_FLAGS="${MODE} -std=c++14 -O2"
 # Select external libraries
 LINKER_FLAGS=""
 
 # Give execution permission
 chmod +x ${ROOT_PATH}/tools/buildAndRun.sh;
 # Compile everything
-${ROOT_PATH}/tools/buildAndRun.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${MODE}" "${CPP_VERSION}" "${O_LEVEL}" "${LINKER_FLAGS}";
-
+${ROOT_PATH}/tools/buildAndRun.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${COMPILER_FLAGS}" "${LINKER_FLAGS}";

+ 4 - 7
Source/templates/basic3D/build.sh

@@ -11,16 +11,13 @@ TEMP_DIR=${ROOT_PATH}/../../temporary
 # Select a window manager
 WINDOW_MANAGER=X11
 # Select safe debug mode or fast release mode
-MODE=-DDEBUG #Debug mode
-#MODE=-DNDEBUG #Release mode
-# Select the version of C++
-CPP_VERSION=-std=c++14
-# Select optimization level
-O_LEVEL=-O2
+#MODE=-DDEBUG #Debug mode
+MODE=-DNDEBUG #Release mode
+COMPILER_FLAGS="${MODE} -std=c++14 -O2"
 # Select external libraries
 LINKER_FLAGS=""
 
 # Give execution permission
 chmod +x ${ROOT_PATH}/tools/buildAndRun.sh;
 # Compile everything
-${ROOT_PATH}/tools/buildAndRun.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${MODE}" "${CPP_VERSION}" "${O_LEVEL}" "${LINKER_FLAGS}";
+${ROOT_PATH}/tools/buildAndRun.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${COMPILER_FLAGS}" "${LINKER_FLAGS}";

+ 4 - 7
Source/templates/basicCLI/build.sh

@@ -11,16 +11,13 @@ TEMP_DIR=${ROOT_PATH}/../../temporary
 # Select a window manager
 WINDOW_MANAGER=NONE
 # Select safe debug mode or fast release mode
-MODE=-DDEBUG #Debug mode
-#MODE=-DNDEBUG #Release mode
-# Select the version of C++
-CPP_VERSION=-std=c++14
-# Select optimization level
-O_LEVEL=-O2
+#MODE=-DDEBUG #Debug mode
+MODE=-DNDEBUG #Release mode
+COMPILER_FLAGS="${MODE} -std=c++14 -O2"
 # Select external libraries
 LINKER_FLAGS=""
 
 # Give execution permission
 chmod +x ${ROOT_PATH}/tools/buildAndRun.sh;
 # Compile everything
-${ROOT_PATH}/tools/buildAndRun.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${MODE}" "${CPP_VERSION}" "${O_LEVEL}" "${LINKER_FLAGS}";
+${ROOT_PATH}/tools/buildAndRun.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${COMPILER_FLAGS}" "${LINKER_FLAGS}";

+ 4 - 7
Source/templates/basicGUI/build.sh

@@ -11,16 +11,13 @@ TEMP_DIR=${ROOT_PATH}/../../temporary
 # Select a window manager
 WINDOW_MANAGER=X11
 # Select safe debug mode or fast release mode
-MODE=-DDEBUG #Debug mode
-#MODE=-DNDEBUG #Release mode
-# Select the version of C++
-CPP_VERSION=-std=c++14
-# Select optimization level
-O_LEVEL=-O2
+#MODE=-DDEBUG #Debug mode
+MODE=-DNDEBUG #Release mode
+COMPILER_FLAGS="${MODE} -std=c++14 -O2"
 # Select external libraries
 LINKER_FLAGS=""
 
 # Give execution permission
 chmod +x ${ROOT_PATH}/tools/buildAndRun.sh;
 # Compile everything
-${ROOT_PATH}/tools/buildAndRun.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${MODE}" "${CPP_VERSION}" "${O_LEVEL}" "${LINKER_FLAGS}";
+${ROOT_PATH}/tools/buildAndRun.sh "${PROJECT_FOLDER}" "${TARGET_FILE}" "${ROOT_PATH}" "${TEMP_DIR}" "${WINDOW_MANAGER}" "${COMPILER_FLAGS}" "${LINKER_FLAGS}";

+ 1 - 1
Source/test.sh

@@ -7,7 +7,7 @@ MODE=-DDEBUG
 O_LEVEL=-O2
 
 chmod +x ${ROOT_PATH}/tools/build.sh;
-${ROOT_PATH}/tools/build.sh "NONE" "NONE" "${ROOT_PATH}" "${TEMP_ROOT}" "NONE" "${MODE}" "${CPP_VERSION}" "${O_LEVEL}";
+${ROOT_PATH}/tools/build.sh "NONE" "NONE" "${ROOT_PATH}" "${TEMP_ROOT}" "NONE" "${MODE} ${CPP_VERSION} ${O_LEVEL}";
 if [ $? -ne 0 ]
 then
 	exit 1

+ 6 - 9
Source/tools/build.sh

@@ -6,18 +6,15 @@ TARGET_FILE=$2 # Your executable to build
 ROOT_PATH=$3 # The parent folder of DFPSR, SDK and tools
 TEMP_ROOT=$4 # Where your temporary objects should be
 WINDOW_MANAGER=$5 # Which library to use for creating a window
-MODE=$6 # Use -DDEBUG for debug mode or -DNDEBUG for release mode
-CPP_VERSION=$7 # Default is -std=c++14
-O_LEVEL=$8 # Default is -O2
-LINKER_FLAGS=$9 # Additional linker flags for libraries and such
+COMPILER_FLAGS=$6 # -DDEBUG/-DNDEBUG -std=c++14/-std=c++17 -O2/-O3
+LINKER_FLAGS=$7 # Additional linker flags for libraries and such
 
-TEMP_SUB="${MODE}_${CPP_VERSION}_${O_LEVEL}"
+TEMP_SUB="${COMPILER_FLAGS// /_}"
 TEMP_SUB=$(echo $TEMP_SUB | tr "+" "p")
 TEMP_SUB=$(echo $TEMP_SUB | tr -d " =-")
 TEMP_DIR=${TEMP_ROOT}/${TEMP_SUB}
 echo "Building version ${TEMP_SUB}"
 
-
 # Allow calling other scripts
 chmod +x ${ROOT_PATH}/tools/clean.sh
 chmod +x ${ROOT_PATH}/tools/buildLibrary.sh
@@ -26,7 +23,7 @@ chmod +x ${ROOT_PATH}/tools/buildLibrary.sh
 ${ROOT_PATH}/tools/clean.sh ${TEMP_DIR}
 
 echo "Compiling renderer framework."
-${ROOT_PATH}/tools/buildLibrary.sh g++ ${ROOT_PATH}/DFPSR ${TEMP_DIR} "dfpsr" ${CPP_VERSION} ${O_LEVEL} ${MODE} LAZY
+${ROOT_PATH}/tools/buildLibrary.sh g++ ${ROOT_PATH}/DFPSR ${TEMP_DIR} "dfpsr" "${COMPILER_FLAGS}" LAZY
 if [ $? -ne 0 ]
 then
 	exit 1
@@ -39,7 +36,7 @@ then
 fi
 
 echo "Compiling application."
-${ROOT_PATH}/tools/buildLibrary.sh g++ ${PROJECT_FOLDER} ${TEMP_DIR} "application" ${CPP_VERSION} ${O_LEVEL} ${MODE} CLEAN
+${ROOT_PATH}/tools/buildLibrary.sh g++ ${PROJECT_FOLDER} ${TEMP_DIR} "application" "${COMPILER_FLAGS}" CLEAN
 if [ $? -ne 0 ]
 then
 	exit 1
@@ -61,7 +58,7 @@ else
 fi
 
 echo "Compiling window manager (${WINDOW_SOURCE})"
-g++ ${CPP_VERSION} ${O_LEVEL} ${MODE} -Wall -c ${WINDOW_SOURCE} -o ${TEMP_DIR}/NativeWindow.o
+g++ ${COMPILER_FLAGS} -Wall -c ${WINDOW_SOURCE} -o ${TEMP_DIR}/NativeWindow.o
 if [ $? -ne 0 ]
 then
 	exit 1

+ 3 - 5
Source/tools/buildAndRun.sh

@@ -6,16 +6,14 @@ TARGET_FILE=$2 # Your executable to build
 ROOT_PATH=$3 # The parent folder of DFPSR, SDK and tools
 TEMP_ROOT=$4 # Where your temporary objects should be
 WINDOW_MANAGER=$5 # Which library to use for creating a window
-MODE=$6 # Use -DDEBUG for debug mode or -DNDEBUG for release mode
-CPP_VERSION=$7 # Default is -std=c++14
-O_LEVEL=$8 # Default is -O2
-LINKER_FLAGS=$9 # Additional linker flags for libraries and such
+COMPILER_FLAGS=$6 # -DDEBUG/-DNDEBUG -std=c++14/-std=c++17 -O2/-O3
+LINKER_FLAGS=$7 # Additional linker flags for libraries and such
 
 # Allow calling the build script
 chmod +x ${ROOT_PATH}/tools/build.sh
 
 # Compile and link
-${ROOT_PATH}/tools/build.sh "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
+${ROOT_PATH}/tools/build.sh "$1" "$2" "$3" "$4" "$5" "$6" "$7"
 if [ $? -ne 0 ]
 then
 	exit 1

+ 5 - 9
Source/tools/buildLibrary.sh

@@ -10,18 +10,14 @@ SOURCE_FOLDER=$2
 TARGET=$3
 # The name of your library without any path nor extension
 LIBRARY_NAME=$4
-OBJECT_POSTFIX="_$4_TEMP.o"
-# C++ version
-CPP_VERSION=$5
-# Optimization level
-O_LEVEL=$6
-# Debug -DDEBUG or Release -DNDEBUG
-MODE=$7
+OBJECT_POSTFIX="_${LIBRARY_NAME}_TEMP.o"
+# Compiler flags
+COMPILER_FLAGS=$5
 # Use CLEAN to recompile everything
 # Use LAZY to only recompile if the source folder itself has changed
 #   If the library depends on anything outside of its folder that changes, lazy compilation will fail
 #   If you change modes a lot and compiler versions a lot, multiple temporary folders may be useful
-BUILD_METHOD=$8
+BUILD_METHOD=$6
 
 LIBRARY_FILENAME=${TARGET}/${LIBRARY_NAME}.a
 SUM_FILENAME=${TARGET}/${LIBRARY_NAME}.md5
@@ -67,7 +63,7 @@ if [ ! -f ${LIBRARY_FILENAME} ]; then
 			# Get name without extension nor path
 			base=${name%.cpp}
 			echo "  C++ ${file}"
-			${COMPILER} ${CPP_VERSION} ${O_LEVEL} ${MODE} -Wall -c ${file} -o ${TARGET}/${base}${OBJECT_POSTFIX}
+			${COMPILER} ${COMPILER_FLAGS} -Wall -c ${file} -o ${TARGET}/${base}${OBJECT_POSTFIX}
 			if [ $? -ne 0 ]
 			then
 				echo "Failed to compile ${file}!"