2017-02-08 24 views
13

Kullanılan derleyiciyi açıklayan bir C++ üstbilgi dosyası oluşturmam gerekiyor. Visual Studio, configure dosyası oluşturabilir mi?

Geleneksel olarak CKağıt komutu kullanılır: "@" arasında kalan her dizi yerine

configure(${PROJECT_SOURCE_DIR}/configure.h.in ${PROJECT_BINARY_DIR}/configure.h) 

cmake yapı sisteminde bu değişkenin değeri ile (örneğin @ cxx_compiler_name @ için).

CMake ile yüzleşme gereksinimi bize verildi, bu nedenle Visual Studio'da eşdeğer bir şey var. Üstbilgi dosyasını Visual Studio makrolarındaki bazı değerlerle doldurmak isterim.

+2

Tek bir hile, bu kod oluşturma amacıyla aynı çözümde bir C# projesini eklemek, bir configure.h.tt ("T4 şablonu") eklemek, bunlar .h veya .cpp gibi herhangi bir dosya uzantısını verebilirler) proje, başka bir C# koduyla, ve C++ projesinin C# 'ya bağımlı olması için çözümü yapılandırın. Oluşturulan dosyayı C++ 'ya kopyalamak veya C++ projesine doğrudan eklemek için vcxproj dosyasına bir msbuild görevi ekleyebilirsiniz. T4 hakkında daha fazla bilgi için: http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx –

cevap

2

Projenize configure.h.in dosyasını ekleyebilir ve bunun için perl veya sed kodlarını çalıştıran ve gerektiğinde değiştirebileceğiniz özel bir yapı oluşturabilirsiniz. configure.h, dosya özelliklerine'u ekleyebilmeyi unutmayın, böylece Visual Studio bağımlılıkları çözebilir ve configure.h'u kullanan diğer kaynaklardan önce configure.h.in'u "derleyin".

+0

Cmake ile derleyicilerin isimlerini ve sürümlerini doğrudan alabilirsiniz. sed işe yarardı, ama sahip olduğum tüm değişimler için uzun bir komut olacak. Perl de işe yarayacaktı, ama başka bir araç getirecek olursam CMake ile yazıyorum. – KlingonJoe

+0

@KlingonJoe Bu http://stackoverflow.com/a/7888659/70930 için MSBuild kullanmayı deneyebilirsiniz, ancak daha kolay olduğundan emin değilim. – Paul