Çok sayıda küçük yürütülebilir dosyadan oluşan bir proje üzerinde çalışıyorum. Yürütülebilir dosyalar terminalden (veya komut isteminden) çalıştırılacak ve herhangi bir programlama dilinde yazılabilir. Yorumlanan dillere yazılanlar, unixy sistemleri için bir shebang hattına sahip olurken, dosya uzantıları Windows'ta PATHEXT ortam değişkenine eklenir.Dosya uzantıları cmake (veya başka bir taşınabilir oluşturma aracı) ile nasıl şeritlenir?
Tüm programlama dillerinde ve her iki ana platform grubunda tutarlı olarak çalıştırılabilirleri kullanmak için, dosya uzantısını unixy sistemlerinde yorumlanmış programların dosya adından çıkarmalıyım. ("Tutarlı kullanım" ile demek istedim: sadece dosya uzantısını belirtmeye gerek kalmadan, onu başlatmak için programın adını yazın.)
Betona daha fazla gitmek için, aşağıdaki CMakeLists dosyası gibi bir şey yazdığımı varsayalım: Ben platformuna bağlı olarak, şartlı elimden edilecek orange.py
ve strawberry.lua
dosya uzantılarını isterken
project (Mixed Example)
add_executable (banana banana.cpp)
add_executable (grape grape.hs)
add_script? (orange orange.py)
add_script? (strawberry strawberry.lua)
install (TARGETS banana grape orange strawberry DESTINATION bin)
Sonra,
banana.cpp
ve
grape.hs
normal şekilde derlenmiş olmak istiyorum. Böylece
bin
dizin izleyen bir unixy sistemde dosyaları içermelidir:
banana grape orange strawberry
ve Windows üzerinde aşağıdaki:
banana.exe grape.exe orange.py strawberry.lua
bunu nasıl?
aynı zamanda yeni bir kural içine bu yapmak için bir yolu var mı, bu yüzden her senaryo için el ile yeniden adlandırma belirtmek gerekmez:
install (FILES ...
birden çok kez, yapabileceğiniz? Ve daha da önemlisi, her iki komut dosyası için kurulum yöntemini iki kez (yani UNIX için bir kez ve bir kez WIN32 için) tanımlama çabalarını kendimi koruyabilir miyim? – Julian@Julian Bunun nasıl yapılabileceğini gösteren daha fazla bilgi ekledim. – Fraser
Teşekkürler, bu tam olarak aradığım şey gibi görünüyor! – Julian