cmake_minimum_required(VERSION 3.10) project(robot_xmlrpcpp) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_POSITION_INDEPENDENT_CODE ON) if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_compile_options(-Wall -Wextra -Wpedantic -fPIC) endif() add_library(robot_xmlrpcpp src/XmlRpcClient.cpp src/XmlRpcDispatch.cpp src/XmlRpcServer.cpp src/XmlRpcServerConnection.cpp src/XmlRpcServerMethod.cpp src/XmlRpcSocket.cpp src/XmlRpcSource.cpp src/XmlRpcUtil.cpp src/XmlRpcValue.cpp ) target_include_directories(robot_xmlrpcpp PUBLIC $ $ ) # --- Cài đặt thư viện vào hệ thống khi chạy make install --- install(TARGETS robot_xmlrpcpp EXPORT robot_xmlrpcpp-targets ARCHIVE DESTINATION lib # Thư viện tĩnh .a LIBRARY DESTINATION lib # Thư viện động .so RUNTIME DESTINATION bin # File thực thi (nếu có) INCLUDES DESTINATION include # Cài đặt include ) install( DIRECTORY include/ DESTINATION include/ ) # --- Xuất export set robot_xmlrpcpp-targets thành file CMake module --- # --- Tạo file lib/cmake/robot_xmlrpcpp/robot_xmlrpcpp-targets.cmake --- # --- File này chứa cấu hình giúp project khác có thể dùng --- # --- Find_package(robot_xmlrpcpp REQUIRED) --- # --- Target_link_libraries(my_app PRIVATE robot_xmlrpcpp::robot_xmlrpcpp) --- install(EXPORT robot_xmlrpcpp-targets FILE robot_xmlrpcpp-targets.cmake NAMESPACE robot_xmlrpcpp:: DESTINATION lib/cmake/robot_xmlrpcpp )