Tôi có một dự án (với các tiểu dự án) mà tôi muốn tạo nhiều trình cài đặt NSIS, thay vì có nhiều thành phần được liệt kê trong một trình cài đặt NSIS. Điều này có thể không? Hoặc tôi có cần sắp xếp mã của mình thành các dự án riêng biệt không?CMake/CPack có thể tạo nhiều trình cài đặt NSIS cho một dự án không?
5
A
Trả lời
0
Có thể cung cấp thuộc tính CMake, ví dụ: COMPONENT
có thể được đặt thành giá trị từ một nhóm tên gói được xác định trước như: COMPONENT_1 | COMPONENT_2 | ... COMPONENT_X
Tên gói thậm chí có thể là tên không tương ứng với tên thành phần duy nhất nhưng tập hợp các thành phần sẽ được thêm vào trong CPACK_COMPONENTS_ALL. Nếu COMPONENT bằng ALL_COMPONENTS thì giá trị của CPACK_COMPONENTS_ALL sẽ chứa tất cả các thành phần có thể có.
Bao bì cmake:
if (WIN32)
set (CPACK_COMPONENTS_ALL ${COMPONENT})
set (CPACK_PACKAGE_NAME ${COMPONENT})
set (CPACK_COMPONENT_${COMPONENT}_DISPLAY_NAME "${COMPONENT}")
set (CPACK_COMPONENT_${COMPONENT}_DESCRIPTION "${COMPONENT}")
set (CPACK_NSIS_DISPLAY_NAME "${COMPONENT}")
set (CPACK_NSIS_PACKAGE_NAME "${COMPONENT}")
set (CPACK_NSIS_INSTALL_ROOT "C:")
set (CPACK_GENERATOR NSIS)
else()
...
endif()
Để tạo một trình cài đặt cho mỗi thành phần bạn sẽ chạy ví dụ:
cmake -COMPONENT=COMPONENT_1 ../
nmake package
cmake -COMPONENT=COMPONENT_2 ../
nmake package
...
cmake -COMPONENT=COMPONENT_X ../
nmake package
Gấu nhớ rằng kể từ khi mã nhị phân được xây dựng trên việc thực hiện đầu tiên của nmake package
, các cuộc gọi tiếp theo tới cmake
và nmake package
sẽ chỉ định cấu hình lại bao bì và chỉ tạo COMPONENT được yêu cầu (còn gọi là COMPONENT)
Các vấn đề liên quan
- 1. Trình cài đặt NSIS có .NET 4.0
- 2. Đặt trường UAC 'Publisher' cho Trình cài đặt NSIS
- 3. Lỗi "Không thể cài đặt dự án" trong khi tạo dự án?
- 4. Bạn có thể tạo cài đặt dự án cho mỗi người dùng trong Xcode không?
- 5. Gỡ lỗi một dự án trình cài đặt
- 6. Lỗi cài đặt NSIS Cờ
- 7. Trình cài đặt NSIS kiểm tra .NET Framework
- 8. Đang cài đặt memcached cho một dự án django
- 9. Đăng nhập trình cài đặt NSIS trên hộp Linux
- 10. Dự án Trình cài đặt Visual Studio: Trình cài đặt và Biểu tượng Ứng dụng
- 11. Thay đổi thuộc tính cài đặt NSIS
- 12. Xcode: cài đặt dự án so với cài đặt đích
- 13. Trình tạo cài đặt Linux
- 14. Không thể cài đặt dự án mẫu ApiDemos trên trình giả lập Android
- 15. Làm cách nào để tạo dự án có thể cài đặt pip?
- 16. Cài đặt Visual Studio cho mỗi giải pháp/dự án
- 17. Tự động chỉ định cài đặt cấu hình xây dựng cho nhiều dự án QtCreator chung
- 18. Cách tạo trình cài đặt với CMake + CPack + NSIS trên Windows?
- 19. Có thể xem nhiều nhánh git cùng một lúc cho cùng một dự án không?
- 20. Tôi có thể cài đặt nhiều phiên bản Xcode không?
- 21. Netstandard1.x Gói Nuget không thể được cài đặt cho các dự án netstandard1.x
- 22. Thêm cài đặt từ một dự án khác vào app.config
- 23. Có thể đặt cài đặt thụt lề trong Xcode cho mỗi dự án (hoặc mỗi tệp, thậm chí) không?
- 24. ứng dụng cho dự án chưa được cài đặt
- 25. Trình cài đặt hoặc không có trình cài đặt?
- 26. Làm cách nào để thực thi trình gỡ cài đặt NSIS từ bên trong trình cài đặt NSIS khác và đợi nó kết thúc?
- 27. một DLL, nhiều dự án?
- 28. Cài đặt phiên bản Laravel 5 cụ thể với dự án tạo composer
- 29. scala chạy thử SBT cài đặt và lệnh dọn dẹp một lần vào nhiều dự án
- 30. Cài đặt dự án trong Gitlab
Bạn có muốn thực thi trình cài đặt cho mỗi tiểu dự án không? Nếu vậy, tại sao không xây dựng mỗi tiểu dự án một mình, với trình cài đặt của nó? Để cài đặt NSIS (và bất kỳ phần mềm nào khác) để tách các tệp đã cài đặt, bạn cần gán chúng cho các thành phần * khác nhau *. Lệnh 'project()', khởi động mọi tiểu dự án, không có sence cho CPack. – Tsyvarev