Tôi đang tìm cách tích hợp một hệ thống xây dựng đa nền tảng không tầm thường cho một dự án được viết chủ yếu bằng C++. Tôi đã đánh giá Cmake và Scons, cho đến nay, và trong khi cả hai đều đại diện cho một cải tiến hơn (GNU), nhưng cách tiếp cận dường như không thanh lịch hoặc trong suốt trong bối cảnh tôi đã cố gắng sử dụng những công cụ này. Điều này đã đưa tôi đến với Boost Build (Bjam) và tôi được khuyến khích rằng, với dự án của tôi phụ thuộc vào Boost, bjam sẽ có sẵn cho bất kỳ nền tảng mục tiêu khả thi nào rồi.Bjam để phân tích bảo hiểm gcov?
Tôi đã gặp khó khăn khi cố gắng tích hợp gọn gàng mã vùng phủ sóng cho các bài kiểm tra đơn vị của thư viện ... với chế độ xem để tích hợp cuối cùng vào máy chủ xây dựng như Jenkins. Trong khi tôi đang sẵn sàng để được hướng dẫn bởi bjam thực hành tốt nhất/tiêu chuẩn, tôi nghĩ tôi cần ba khác biệt "biến thể":
- phát hành - để xây dựng thư viện tĩnh tối ưu hóa chỉ
- debug - để xây dựng không được tối ưu hóa tĩnh kiểm tra thư viện và đơn vị
- mức độ phù hợp - để xây dựng thư viện hỗ trợ bảo hiểm và liên kết với các thử nghiệm đơn vị được hỗ trợ không được bảo hiểm.
Về bản chất, ngoài các bản dựng gỡ lỗi và bản phát hành chuẩn, tôi muốn có một bản dựng gỡ lỗi mục đích đặc biệt cũng thu thập dữ liệu bảo hiểm.
Tôi cần phải xây dựng với (ít nhất) g ++ và msvc ... và chỉ sử dụng gcov chuyển đổi bằng g ++. Điều này có nghĩa là mục tiêu thư viện của tôi cần "compilerflags" khác nhau cho mục tiêu thực thi kiểm thử đơn vị ... và chỉ cho một trong các bộ biên dịch của tôi ... và chỉ cho một biến thể.
Tôi không rõ làm thế nào tốt nhất để đạt được điều này với Bjam - mặc dù, tôi nghi ngờ, nó phải là một trường hợp sử dụng khá phổ biến. Bjam có hỗ trợ rõ ràng cho phân tích bảo hiểm gcov (có thể trình bày kết quả sử dụng lcov) không? Nếu không, bất cứ ai có thể đề nghị một chiến lược mà sẽ hỗ trợ các kịch bản trên (đơn giản)?
Cảm ơn những con trỏ ...Tôi thà hy vọng rằng tôi sẽ tìm thấy một mẫu mà, ít nhất, làm việc đúng với gcc/gcov ... – aSteve