48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#! /usr/bin/env bash
 | 
						|
 | 
						|
target=$1
 | 
						|
buildType=$2
 | 
						|
 | 
						|
project=$(pwd)/
 | 
						|
 | 
						|
if [[ $target == gba ]]; then
 | 
						|
	toolchain="-DCMAKE_TOOLCHAIN_FILE=cmake/modules/GBA.cmake"
 | 
						|
	nostalgiaBuildType="GBA"
 | 
						|
else
 | 
						|
	nostalgiaBuildType="Native"
 | 
						|
fi
 | 
						|
 | 
						|
if [[ $buildType == asan ]]; then
 | 
						|
	buildTypeArg="Debug"
 | 
						|
	sanitizerStatus="ON"
 | 
						|
elif [[ $buildType == debug ]]; then
 | 
						|
	buildTypeArg="Debug"
 | 
						|
	sanitizerStatus="OFF"
 | 
						|
elif [[ $buildType == release ]]; then
 | 
						|
	buildTypeArg="Release"
 | 
						|
	sanitizerStatus="OFF"
 | 
						|
fi
 | 
						|
 | 
						|
buildConfig=${target}-${buildType}
 | 
						|
 | 
						|
if [[ $NOSTALGIA_QT_PATH != "" ]]; then
 | 
						|
	qtPath="-DNOSTALGIA_QT_PATH=${NOSTALGIA_QT_PATH}"
 | 
						|
fi
 | 
						|
 | 
						|
buildDir="${project}/build/${buildConfig}"
 | 
						|
mkdir -p $buildDir
 | 
						|
cmake -S $project -B $buildDir -GNinja \
 | 
						|
      -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
 | 
						|
      -DCMAKE_BUILD_TYPE=${buildTypeArg} \
 | 
						|
      -DUSE_ASAN=${sanitizerStatus} \
 | 
						|
      -DNOSTALGIA_IDE_BUILD=OFF \
 | 
						|
      -DNOSTALGIA_BUILD_CONFIG=${buildConfig} \
 | 
						|
      -DNOSTALGIA_BUILD_TYPE=${nostalgiaBuildType} \
 | 
						|
      $qtPath \
 | 
						|
      $toolchain
 | 
						|
 | 
						|
mkdir -p dist
 | 
						|
echo ${buildConfig} > .current_build
 | 
						|
rm -f compile_commands.json
 | 
						|
ln -s build/${buildConfig}/compile_commands.json
 |