Możesz napisać takie narzędzie samodzielnie w C# na przykład, spójrz na klasy w przestrzeni nazw Microsoft.Build.Construction
, są one przeznaczone do programowania programowego.
Jednak prostszą, ale bardziej wszechstronną opcją jest używanie tego samego arkusza właściwości we wszystkich projektach i ustawianie wszystkich potrzebnych ścieżek katalogów. Ma to również ogromną zaletę, ponieważ jest wielokrotnego użytku, więc jeśli kiedykolwiek zdecydujesz się na zmianę katalogów wyjściowych, wszystkie projekty odnoszące się do arkusza właściwości zostaną automatycznie zmienione. Na przykład:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MyMainDir>$(ProjectPath)\..\</MyMainDir>
<OutDir>$(MyMainDir)\bin\$(ConfigurationName)</OutDir>
<IntDir>$(MyMainDir)\tmp\$(ConfigurationName)</IntDir>
</PropertyGroup>
</Project>
To będzie pierwszy dowiedzieć się swoją „główną dir” czyli jeden o nazwie „projekt” w swoje pytanie, a następnie ustawić wyjście i katalogi pośrednie oparte na tym, a nazwa bieżącego ConfigurationName
, domyślnie jest to Debug
lub Release
.
Teraz chodzi tylko o importowanie tego arkusza właściwości w projekcie: przejdź do View->Other Windows->Property Manager
, kliknij projekt prawym przyciskiem myszy, wybierz Add Existing property Sheet
. Lub możesz ręcznie dodać <Import Project=....>
w pliku projektu.
Podczas pracy możesz równie dobrze dodać opcje kompilatora/linkera do arkusza właściwości, aby wszystkie projekty używały tych samych opcji. To zajmuje trochę czasu, ale zaoszczędzi ci mnóstwo czasu w przyszłości, ponieważ nie musisz zmieniać tych samych opcji w ustawieniach projektu w kółko.
Oznaczyłeś swoje pytanie słowem "cmake". CMake faktycznie pozwala na to (z wyjątkiem może lokalizacji pośredników kompilacji (pliki obiektów), które kończyłyby się gdzieś pod '/ project/build'). Jakie jest dokładnie twoje pytanie: czy CMake może to zrobić, czy jak to zrobić? – Angew
Jestem nowy w cmake, ale próbowałem użyć cmake do rozwiązania mojego problemu i nie ma dla mnie łatwego rozwiązania. Przypuszczam, że może istnieć szkieletowy plik cmake do wygenerowania pliku projektu vs2010 z odpowiednimi konfiguracjami. Ale wciąż nie znalazłem. –