diff --git a/Crafter.Build-Project.cpp b/Crafter.Build-Project.cpp index fba5988..a33a583 100644 --- a/Crafter.Build-Project.cpp +++ b/Crafter.Build-Project.cpp @@ -101,19 +101,19 @@ void Project::Build(std::string configuration) { for(std::int_fast32_t i = 0; i < config.moduleFiles.size(); i++) { files+=std::format("{}/{}.o ",config.buildDir, config.moduleFiles[i]); threads[i] = std::thread([i, config](){ - system(std::format("clang++ -std={} {}/{}.pcm -fprebuilt-module-path={} -c -o {}/{}.o", config.standard, config.buildDir, config.moduleFiles[i], config.buildDir, config.buildDir, config.moduleFiles[i]).c_str()); + system(std::format("clang++ -std={} {}/{}.pcm -fprebuilt-module-path={} -c -O{} -o {}/{}.o", config.standard, config.buildDir, config.moduleFiles[i], config.buildDir, config.optimizationLevel, config.buildDir, config.moduleFiles[i]).c_str()); }); } for(std::int_fast32_t i = 0; i < config.sourceFiles.size(); i++) { files+=std::format("{}/{}_source.o ",config.buildDir, config.sourceFiles[i]); threads[config.moduleFiles.size()+i] = std::thread([i, config](){ - system(std::format("clang++ -std={} {}.cpp -fprebuilt-module-path={} -c -o {}/{}_source.o", config.standard, config.sourceFiles[i], config.buildDir, config.buildDir, config.sourceFiles[i]).c_str()); + system(std::format("clang++ -std={} {}.cpp -fprebuilt-module-path={} -c -O{} -o {}/{}_source.o", config.standard, config.sourceFiles[i], config.buildDir, config.optimizationLevel, config.buildDir, config.sourceFiles[i]).c_str()); }); } for(std::thread& thread : threads){ thread.join(); } - system(std::format("clang++ {}-o {}/{}", files, config.outputDir, name).c_str()); + system(std::format("clang++ {}-O{} -o {}/{}", files, config.optimizationLevel, config.outputDir, name).c_str()); return; } } diff --git a/build.sh b/build.sh index ac9e22d..9a42d52 100755 --- a/build.sh +++ b/build.sh @@ -4,11 +4,11 @@ clang++ -std=c++26 Crafter.Build-Configuration.cppm --precompile -fprebuilt-modu clang++ -std=c++26 Crafter.Build-Project.cppm --precompile -fprebuilt-module-path=./build -o ./build/Crafter.Build-Project.pcm clang++ -std=c++26 Crafter.Build.cppm --precompile -fprebuilt-module-path=./build -o ./build/Crafter.Build.pcm -clang++ -std=c++26 Crafter.Build-Configuration.cpp -fprebuilt-module-path=./build -c -o ./build/Crafter.Build-Configuration_source.o -clang++ -std=c++26 Crafter.Build-Project.cpp -fprebuilt-module-path=./build -c -o ./build/Crafter.Build-Project_source.o +clang++ -std=c++26 Crafter.Build-Configuration.cpp -fprebuilt-module-path=./build -c -O3 -o ./build/Crafter.Build-Configuration_source.o +clang++ -std=c++26 Crafter.Build-Project.cpp -fprebuilt-module-path=./build -c -O3 -o ./build/Crafter.Build-Project_source.o clang++ -std=c++26 main.cpp -fprebuilt-module-path=./build -c -o ./build/main.o -clang++ -std=c++26 ./build/Crafter.Build-Project.pcm -fprebuilt-module-path=./build -c -o ./build/Crafter.Build-Project.o -clang++ -std=c++26 ./build/Crafter.Build-Configuration.pcm -fprebuilt-module-path=./build -c -o ./build/Crafter.Build-Configuration.o -clang++ -std=c++26 ./build/Crafter.Build.pcm -fprebuilt-module-path=./build -c -o ./build/Crafter.Build.o -clang++ ./build/main.o ./build/Crafter.Build.o ./build/Crafter.Build-Configuration.o ./build/Crafter.Build-Configuration_source.o ./build/Crafter.Build-Project.o ./build/Crafter.Build-Project_source.o -o ./bin/crafter-build +clang++ -std=c++26 ./build/Crafter.Build-Project.pcm -fprebuilt-module-path=./build -c -O3 -o ./build/Crafter.Build-Project.o +clang++ -std=c++26 ./build/Crafter.Build-Configuration.pcm -fprebuilt-module-path=./build -c -O3 -o ./build/Crafter.Build-Configuration.o +clang++ -std=c++26 ./build/Crafter.Build.pcm -fprebuilt-module-path=./build -c -O3 -o ./build/Crafter.Build.o +clang++ ./build/main.o ./build/Crafter.Build.o ./build/Crafter.Build-Configuration.o ./build/Crafter.Build-Configuration_source.o ./build/Crafter.Build-Project.o ./build/Crafter.Build-Project_source.o -O3 -o ./bin/crafter-build diff --git a/project.json b/project.json index 66533cc..1f36113 100644 --- a/project.json +++ b/project.json @@ -13,6 +13,11 @@ "name": "debug", "extends": ["base"], "optimization_level": "0" + }, + { + "name": "release", + "extends": ["base"], + "optimization_level": "3" } ] }