2828#include < http.h>
2929#include < printers/cmake.h>
3030#include < program.h>
31+ #include < resolver.h>
3132#include < settings.h>
3233#include < shell_link.h>
3334#include < verifier.h>
124125 return 0 ;
125126 }
126127
128+ // handle internal args
127129 if (auto r = internal (args))
128130 return r.get ();
129131
@@ -521,7 +523,7 @@ optional<int> internal(const Strings &args)
521523 if (args.size () != 6 )
522524 {
523525 std::cout << " invalid number of arguments\n " ;
524- std::cout << " usage: cppan -- internal-fix-imports target aliases.file old.file new.file\n " ;
526+ std::cout << " usage: cppan internal-fix-imports target aliases.file old.file new.file\n " ;
525527 return 1 ;
526528 }
527529 fix_imports (args[2 ], args[3 ], args[4 ], args[5 ]);
@@ -536,7 +538,7 @@ optional<int> internal(const Strings &args)
536538 if (args.size () != 4 )
537539 {
538540 std::cout << " invalid number of arguments: " << args.size () << " \n " ;
539- std::cout << " usage: cppan -- internal-create-link-to-solution solution.sln link.lnk\n " ;
541+ std::cout << " usage: cppan internal-create-link-to-solution solution.sln link.lnk\n " ;
540542 return 1 ;
541543 }
542544 if (!create_link (args[2 ], args[3 ], " Link to CPPAN Solution" ))
@@ -549,7 +551,7 @@ optional<int> internal(const Strings &args)
549551 if (args.size () < 6 )
550552 {
551553 std::cout << " invalid number of arguments: " << args.size () << " \n " ;
552- std::cout << " usage: cppan -- internal-parallel-vars-check vars_dir vars_file checks_file generator toolset toolchain\n " ;
554+ std::cout << " usage: cppan internal-parallel-vars-check vars_dir vars_file checks_file generator toolset toolchain\n " ;
553555 return 1 ;
554556 }
555557
@@ -576,6 +578,33 @@ optional<int> internal(const Strings &args)
576578 return 0 ;
577579 }
578580
581+ if (args[1 ] == " internal-process-cmake-dependencies" )
582+ {
583+ if (args.size () < 3 )
584+ {
585+ std::cout << " invalid number of arguments: " << args.size () << " \n " ;
586+ std::cout << " usage: cppan internal-process-cmake-dependencies deps.txt [out_dir]\n " ;
587+ return 1 ;
588+ }
589+
590+ if (args.size () == 4 )
591+ {
592+ Settings::get_local_settings ().cppan_dir = args[3 ];
593+ Settings::get_local_settings ().meta_target_suffix = args[3 ];
594+ }
595+
596+ auto deps_file = path (args[2 ]);
597+ auto deps = read_lines (deps_file);
598+ Config c;
599+ for (auto &d : deps)
600+ c.getDefaultProject ().addDependency (resolve_dependency (d));
601+ c.process (deps_file.parent_path ());
602+ return 0 ;
603+ }
604+
605+ if (args[1 ].find (" internal-" ) == 0 )
606+ throw std::runtime_error (" Unknown internal command: " + args[1 ]);
607+
579608 return optional<int >();
580609}
581610
0 commit comments