Một số chức năng trong gói của tôi chạy nhanh hơn nhiều bằng cách sử dụng C++ 11 vùng chứa, nhưng CRAN không chấp nhận gói của tôi sử dụng cả hai $(SHLIB_OPENMP_CXXFLAGS)
và $(CXX1XSTD)
vì nó không biên dịch trên Solaris (hoặc các nền tảng phụ khác). Lời khuyên từ CRAN là viết một kịch bản cấu hình, nhưng tôi nghĩ điều này sẽ mất quá nhiều thời gian để tôi học, và không cần thiết làm phức tạp mã của tôi cho các nền tảng mà ít người sử dụng.kiểm tra xem gói đang được kiểm tra bởi CRAN
Hiện tại, tôi vừa nhận xét tất cả mã C++ 11 và xóa $(CXX1XSTD)
từ Makevars
để gửi CRAN. Đây là một công việc tồi tệ xung quanh, và tôi muốn có thể phát hiện CRAN trong Makevars
và làm cho buồng, vì vậy tôi không phải duy trì một ngã ba CRAN cho mỗi phiên bản.
Tôi vẫn kiểm tra xem C++ 11 có khả dụng hay không, nhưng nó chỉ là sự kết hợp của cờ C++ 11 và OpenMP trong Makevars, đó là trở ngại đối với bản sao Solaris với CRAN. Tôi cảm thấy phải có một cách tầm thường xung quanh việc này.
Có biến môi trường nào tôi nên sử dụng để kiểm tra xem CRAN có đang kiểm tra gói của tôi không và tôi có thể kiểm tra trong Makevars
? Tôi đã tìm kiếm các cơ sở mã R và đọc R Internals và Viết R mở rộng, mặc dù tôi không thể nói tôi biết chúng bằng trái tim, mà một số người bảo trì CRAN mong đợi. Có các biến môi trường mà CRAN có khả năng là bộ nhưng tôi hy vọng thử nghiệm cho một cái gì đó như _R_CHECK_CRAN_INCOMING_=TRUE
sẽ nâng cao ire của các nhà bảo trì.
Tôi không nghĩ rằng thử nghiệm "nếu solaris" trong Makevars
là đủ: nó là sự hiện diện của cả hai cờ C++ 11 và OpenMP cùng nhau, điều này không được phép, vì chúng có khả năng thất bại trên nền tảng được sử dụng thậm chí ít hơn thường là Solaris.
Có lẽ tôi đang tiếp cận cách này sai.
có một số gợi ý ở đây (giống như cách giải quyết): http: // stackoverflow.com/questions/36166288/skip-tests-on-cran-but-run-locally – Helix123