Преглед изворни кода

Specify the output file for GNU-style deps

default_compile_flags
vector-of-bool пре 5 година
родитељ
комит
9de9bbb7d6
3 измењених фајлова са 27 додато и 13 уклоњено
  1. +2
    -1
      src/dds/build/plan/compile_exec.cpp
  2. +19
    -11
      src/dds/toolchain/from_dds.test.cpp
  3. +6
    -1
      src/dds/toolchain/toolchain.cpp

+ 2
- 1
src/dds/build/plan/compile_exec.cpp Прегледај датотеку

"file to exist: [{}])", "file to exist: [{}])",
df_path.string()); df_path.string());
} else { } else {
auto dep_info = dds::parse_mkfile_deps_file(df_path);
auto dep_info = dds::parse_mkfile_deps_file(df_path);
assert(dep_info.output == cf.object_file_path);
dep_info.command = quote_command(cf.cmd_info.command); dep_info.command = quote_command(cf.cmd_info.command);
dep_info.command_output = compile_res.output; dep_info.command_output = compile_res.output;
ret_deps_info = std::move(dep_info); ret_deps_info = std::move(dep_info);

+ 19
- 11
src/dds/toolchain/from_dds.test.cpp Прегледај датотеку



TEST_CASE("Generating toolchain commands") { TEST_CASE("Generating toolchain commands") {
check_tc_compile("Compiler-ID: GNU", check_tc_compile("Compiler-ID: GNU",
"g++ -fPIC -fdiagnostics-color -pthread -MD -MF foo.o.d -c foo.cpp -ofoo.o",
"g++ -fPIC -fdiagnostics-color -pthread -MD -MF foo.o.d -MT foo.o -c foo.cpp -ofoo.o",
"g++ -fPIC -fdiagnostics-color -pthread -Wall -Wextra -Wpedantic -Wconversion " "g++ -fPIC -fdiagnostics-color -pthread -Wall -Wextra -Wpedantic -Wconversion "
"-MD -MF foo.o.d -c foo.cpp -ofoo.o",
"-MD -MF foo.o.d -MT foo.o -c foo.cpp -ofoo.o",
"ar rcs stuff.a foo.o bar.o", "ar rcs stuff.a foo.o bar.o",
"g++ -fPIC -fdiagnostics-color foo.o bar.a -pthread -lstdc++fs -omeow.exe"); "g++ -fPIC -fdiagnostics-color foo.o bar.a -pthread -lstdc++fs -omeow.exe");


check_tc_compile( check_tc_compile(
"Compiler-ID: GNU\nDebug: True", "Compiler-ID: GNU\nDebug: True",
"g++ -g -fPIC -fdiagnostics-color -pthread -MD -MF foo.o.d -c foo.cpp -ofoo.o",
"g++ -g -fPIC -fdiagnostics-color -pthread -MD -MF foo.o.d -MT foo.o -c foo.cpp -ofoo.o",
"g++ -g -fPIC -fdiagnostics-color -pthread -Wall -Wextra -Wpedantic -Wconversion " "g++ -g -fPIC -fdiagnostics-color -pthread -Wall -Wextra -Wpedantic -Wconversion "
"-MD -MF foo.o.d -c foo.cpp -ofoo.o",
"-MD -MF foo.o.d -MT foo.o -c foo.cpp -ofoo.o",
"ar rcs stuff.a foo.o bar.o", "ar rcs stuff.a foo.o bar.o",
"g++ -fPIC -fdiagnostics-color foo.o bar.a -pthread -lstdc++fs -omeow.exe -g"); "g++ -fPIC -fdiagnostics-color foo.o bar.a -pthread -lstdc++fs -omeow.exe -g");


check_tc_compile( check_tc_compile(
"Compiler-ID: GNU\nDebug: True\nOptimize: True", "Compiler-ID: GNU\nDebug: True\nOptimize: True",
"g++ -O2 -g -fPIC -fdiagnostics-color -pthread -MD -MF foo.o.d -c foo.cpp -ofoo.o",
"g++ -O2 -g -fPIC -fdiagnostics-color -pthread -MD -MF foo.o.d -MT foo.o -c foo.cpp "
"-ofoo.o",
"g++ -O2 -g -fPIC -fdiagnostics-color -pthread -Wall -Wextra -Wpedantic -Wconversion " "g++ -O2 -g -fPIC -fdiagnostics-color -pthread -Wall -Wextra -Wpedantic -Wconversion "
"-MD -MF foo.o.d -c foo.cpp -ofoo.o",
"-MD -MF foo.o.d -MT foo.o -c foo.cpp -ofoo.o",
"ar rcs stuff.a foo.o bar.o", "ar rcs stuff.a foo.o bar.o",
"g++ -fPIC -fdiagnostics-color foo.o bar.a -pthread -lstdc++fs -omeow.exe -O2 -g"); "g++ -fPIC -fdiagnostics-color foo.o bar.a -pthread -lstdc++fs -omeow.exe -O2 -g");


"lib /nologo /OUT:stuff.a foo.o bar.o", "lib /nologo /OUT:stuff.a foo.o bar.o",
"cl.exe /nologo /EHsc foo.o bar.a /Femeow.exe /MT"); "cl.exe /nologo /EHsc foo.o bar.a /Femeow.exe /MT");


check_tc_compile("Compiler-ID: MSVC\nDebug: True",
"cl.exe /Z7 /DEBUG /MTd /EHsc /nologo /permissive- /showIncludes /c foo.cpp /Fofoo.o",
"cl.exe /Z7 /DEBUG /MTd /EHsc /nologo /permissive- /W4 /showIncludes /c foo.cpp /Fofoo.o",
"lib /nologo /OUT:stuff.a foo.o bar.o",
"cl.exe /nologo /EHsc foo.o bar.a /Femeow.exe /Z7 /DEBUG /MTd");
check_tc_compile(
"Compiler-ID: MSVC\nDebug: True",
"cl.exe /Z7 /DEBUG /MTd /EHsc /nologo /permissive- /showIncludes /c foo.cpp /Fofoo.o",
"cl.exe /Z7 /DEBUG /MTd /EHsc /nologo /permissive- /W4 /showIncludes /c foo.cpp /Fofoo.o",
"lib /nologo /OUT:stuff.a foo.o bar.o",
"cl.exe /nologo /EHsc foo.o bar.a /Femeow.exe /Z7 /DEBUG /MTd");


auto tc = dds::parse_toolchain_dds(R"( auto tc = dds::parse_toolchain_dds(R"(
Compiler-ID: GNU Compiler-ID: GNU
"-MD", "-MD",
"-MF", "-MF",
"foo.o.d", "foo.o.d",
"-MT",
"foo.o",
"-c", "-c",
"foo.cpp", "foo.cpp",
"-ofoo.o"}); "-ofoo.o"});
"-MD", "-MD",
"-MF", "-MF",
"foo.o.d", "foo.o.d",
"-MT",
"foo.o",
"-c", "-c",
"foo.cpp", "foo.cpp",
"-ofoo.o"}); "-ofoo.o"});
"-MD", "-MD",
"-MF", "-MF",
"foo.o.d", "foo.o.d",
"-MT",
"foo.o",
"-c", "-c",
"foo.cpp", "foo.cpp",
"-ofoo.o"}); "-ofoo.o"});

+ 6
- 1
src/dds/toolchain/toolchain.cpp Прегледај датотеку

if (_deps_mode == deps_mode::gnu) { if (_deps_mode == deps_mode::gnu) {
gnu_depfile_path = spec.out_path; gnu_depfile_path = spec.out_path;
gnu_depfile_path->replace_extension(gnu_depfile_path->extension().string() + ".d"); gnu_depfile_path->replace_extension(gnu_depfile_path->extension().string() + ".d");
extend(flags, {"-MD"sv, "-MF"sv, std::string_view(gnu_depfile_path->string())});
extend(flags,
{"-MD"sv,
"-MF"sv,
std::string_view(gnu_depfile_path->string()),
"-MT"sv,
std::string_view(spec.out_path.string())});
} else if (_deps_mode == deps_mode::msvc) { } else if (_deps_mode == deps_mode::msvc) {
flags.push_back("/showIncludes"); flags.push_back("/showIncludes");
} }

Loading…
Откажи
Сачувај