CMakeLists.txt 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. file(GLOB MODULE_SOURCES "*.c")
  2. add_library(${module_name} SHARED ${MODULE_SOURCES})
  3. find_package(Radius REQUIRED)
  4. target_compile_definitions(${module_name} PRIVATE ${RADIUSCLIENT_LIB})
  5. target_link_libraries(${module_name} PRIVATE RadiusClient::RadiusClient)
  6. # Install the configuration file (tls.cfg) using a CODE block to check
  7. # existence at install time instead of configure time
  8. install(
  9. CODE "
  10. set(dir \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_SYSCONFDIR}/${MAIN_NAME}\")
  11. set(file \"dictionary.${CFG_NAME}\")
  12. if(EXISTS \"\${dir}/\${file}\")
  13. message(STATUS \"\${file} already exists in \${dir}/\${file}.
  14. Installing as \${file}.sample\")
  15. file(INSTALL \"${CMAKE_CURRENT_SOURCE_DIR}/cfg/\${file}\"
  16. DESTINATION \"${CMAKE_INSTALL_FULL_SYSCONFDIR}/${MAIN_NAME}\"
  17. RENAME \"\${file}.sample\"
  18. PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
  19. )
  20. else()
  21. file(INSTALL \"${CMAKE_CURRENT_SOURCE_DIR}/cfg/\${file}\"
  22. DESTINATION \"${CMAKE_INSTALL_FULL_SYSCONFDIR}/${MAIN_NAME}\"
  23. PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
  24. endif()
  25. "
  26. COMPONENT ${module_name}-cfg
  27. )
  28. add_custom_target(
  29. ${module_name}-install-cfg
  30. COMMENT "Installing auth_radius dictionary.${CFG_NAME} configuration file"
  31. COMMAND ${CMAKE_COMMAND} --install ${CMAKE_BINARY_DIR} --component ${module_name}-cfg
  32. )