2011-11-18 20 views
7

Konwertuję projekt C++ utworzony przy użyciu Visual Studio 2005 do CMake i natknąłem się na problem z plikami zasobów, które są zawarte w projekcie.Pliki zasobów CMake i Visual Studio

Projekt zawiera plik .rc, kilka plików .ico i plik .rc2.

Regularny plik .rc działa poprawnie w wygenerowanym projekcie i korzysta z kompilatora zasobów. Pliki .ico i .rc2 powodują jednak problemy podczas ich dołączania, ponieważ w wygenerowanym projekcie Visual Studio próbuje je skompilować przy użyciu kompilatora C/C++.

Zakładam, że pliki te są zawarte w pliku .rc, więc prawdopodobnie nie uwzględni się ich w pliku CMakeLists.txt, ale możliwe jest ich umieszczenie w projekcie (są one widoczne w pliku oryginalny projekt) Chciałbym to zrobić, aby użytkownik wygenerowanego projektu mógł zobaczyć, że pliki te są używane.

Jaki jest poprawny sposób obsługi tych dodatkowych plików zasobów VS w CMake?

+0

Nie znam CMake, ale masz rację co do sposobu użycia plików zasobów. Jeśli chcesz mieć je w pliku CMakeLists.txt, musisz umieścić je w jakimś celu, który nie zostanie zbudowany, powinno być czymś w dokumentacji. –

+0

@JoachimPileborg: Dzięki za informacje. Tak, problem polega na tym, że nie znam CMake'a i nie znalazłem niczego w dokumentach, które wydają się powiązane ... :) – villintehaspam

+0

Znalazłem to w kilku raportach o błędach dotyczących MinGW, chociaż wygląda na to, że powinno działać? "Jak ktoś napomknął na IRC, dodałem pliki resource.h/resource.rc do listy źródeł projektu add_executable()." –

Odpowiedz

2

Spróbuj set_source_files_properties(your.ico your.rc2 PROPERTIES LANGUAGE RC).

1

Domyślnie nie powinno to robić nic z tymi plikami. Właściwość pliku źródłowego LANGUAGE powinna być pusta, a zatem działanie dla pliku powinno być sprawdzane według typu pliku. Co nie powinno być niczym, ponieważ nie jest czymś, co powinno się skompilować.

Sprawdź swój plik CMakeLists.txt, który nie zawiera komendy set_source_files_properties, które zepsułoby się z tą właściwością.

Jeśli chcesz coś zrobić z plikami, tu są dwa sposoby wykonywania rzeczy:

Z add_custom_target można dodać je i uruchomić zwyczaj nakazuje im podczas budowania projektu. Przyznane, że pliki się zmieniły.

Za pomocą configure_file można w razie potrzeby łatwo skopiować je do katalogu kompilacji. Z flagą COPYONLY.

Powiązane problemy