2012-07-11 34 views
7

Tôi đã thiết lập một dự án trên đầu trang của Qt (vì vậy nguồn được viết bằng C++) và tôi muốn thử Gradle để tự động xây dựng trên đó. Nó đã cho tôi một thời gian để có được vào các chi tiết của cấu hình xây dựng đa dự án (có một thực thi và hai libs) và bây giờ tôi đang cố gắng để nói cho cpp-execpp-lib plugin cách cây nguồn của tôi được cấu trúc.Cấu hình các nguồn cpp trong gradle

Tôi đã thiết lập một nhiệm vụ mà nên in tất cả các bộ nguồn (không nên có ít nhất là mặc định những người phải không?) Và nó trông như thế này:

task projectinfo { 
description = "Informations about the current project" 
group = INFORMATIONS_GROUP 

doFirst { 
    task -> print ("""${task.project.sourceSets.all}""") 
} 

Nếu tôi chạy nhiệm vụ này Gradle nói tôi rằng không có tài sản "sourceSets" cho dự án. The documentation of the plugin cho tôi biết rằng có thể tùy chỉnh vị trí nguồn, nhưng không phải như thế nào.

Vì vậy, câu hỏi của tôi sẽ là: Làm cách nào tôi có thể nói cho trình cắm Gradle cpp có nguồn tệp để sử dụng. Nếu có bất kỳ tài liệu nào về plugin cpp ngoài tài liệu API và hướng dẫn sử dụng Gradle cũng sẽ giúp ích.

Trả lời

9

Hãy xem Adam Murdoch's usage của Gradle 'cpp plugin'. Tôi tin rằng anh ấy là một trong những người nộp Gradle chính, vì vậy ông nên biết làm thế nào để sử dụng này tốt hơn so với bất cứ ai:

gây từ native-platform/build.gradle

cpp { 
    sourceSets { 
     main { 
      source.exclude 'curses.cpp' 
     } 
     curses { 
      source.srcDirs = ['src/main/cpp'] 
      source.include 'curses.cpp' 
      source.include 'generic.cpp' 
      source.include 'generic_posix.cpp' 
     } 
    } 
} 

Then, within the 'libraries' node, refer to all/any combination of architecture and source sets: 

sourceSets << cpp.sourceSets.main 
sourceSets << cpp.sourceSets.curses 

tôi đã không có nhiều thời gian để xem qua bản thân mình, nhưng có vẻ như anh ta định nghĩa một số mã nguồn dựa trên kiến ​​trúc hệ điều hành bao gồm các kết hợp và lưu trữ chúng trong các biến thể biến số. Sau đó, anh ta xử lý chúng thành các JAR nền tảng (tôi chưa thực sự chạy bản dựng này, có lẽ tôi nên).

Ngoài ra, hãy xem https://github.com/rklaren/GradleJNI, nó sử dụng cpp plugin nhưng có vẻ hơi hướng Windows.

Cập nhật - Tôi cũng tìm thấy https://github.com/alkemist/gradle-cpp-demo, trong đó có ví dụ về plugin 'cpp-exe' xây dựng một tệp thực thi.

Các vấn đề liên quan