diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index 0a5b16926e..d6675759f6 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -9,6 +9,7 @@ #include #include +#include #include #include #include @@ -2255,7 +2256,7 @@ struct cmSourceInfo std::vector Includes; }; -std::unique_ptr cmcmd_cmake_ninja_depends_fortran( +cm::optional cmcmd_cmake_ninja_depends_fortran( std::string const& arg_tdi, std::string const& arg_pp); } @@ -2312,7 +2313,7 @@ int cmcmd_cmake_ninja_depends(std::vector::const_iterator argBeg, return 1; } - std::unique_ptr info; + cm::optional info; if (arg_lang == "Fortran") { info = cmcmd_cmake_ninja_depends_fortran(arg_tdi, arg_pp); } else { @@ -2348,9 +2349,10 @@ int cmcmd_cmake_ninja_depends(std::vector::const_iterator argBeg, namespace { -std::unique_ptr cmcmd_cmake_ninja_depends_fortran( +cm::optional cmcmd_cmake_ninja_depends_fortran( std::string const& arg_tdi, std::string const& arg_pp) { + cm::optional info; cmFortranCompiler fc; std::vector includes; { @@ -2363,7 +2365,7 @@ std::unique_ptr cmcmd_cmake_ninja_depends_fortran( cmSystemTools::Error( cmStrCat("-E cmake_ninja_depends failed to parse ", arg_tdi, reader.getFormattedErrorMessages())); - return nullptr; + return info; } } @@ -2390,14 +2392,14 @@ std::unique_ptr cmcmd_cmake_ninja_depends_fortran( if (!cmFortranParser_FilePush(&parser, arg_pp.c_str())) { cmSystemTools::Error( cmStrCat("-E cmake_ninja_depends failed to open ", arg_pp)); - return nullptr; + return info; } if (cmFortran_yyparse(parser.Scanner) != 0) { // Failed to parse the file. - return nullptr; + return info; } - auto info = cm::make_unique(); + info = cmSourceInfo(); for (std::string const& provide : finfo.Provides) { cmSourceReqInfo src_info; src_info.LogicalName = provide;