symbols.cmake 917 B

1234567891011121314151617181920212223242526272829303132333435
  1. set(
  2. UCHARDET_SYMBOLS
  3. uchardet_new
  4. uchardet_delete
  5. uchardet_handle_data
  6. uchardet_data_end
  7. uchardet_reset
  8. uchardet_get_charset
  9. )
  10. set (LINK_FLAGS "")
  11. if (APPLE)
  12. # Create a symbols_list file for the Darwin linker.
  13. string(REPLACE ";" "\n_" _symbols "${UCHARDET_SYMBOLS}")
  14. set(_symbols_list "${CMAKE_CURRENT_BINARY_DIR}/symbols.list")
  15. file(WRITE ${_symbols_list} "_${_symbols}\n")
  16. set(LINK_FLAGS
  17. "${LINK_FLAGS} -Wl,-exported_symbols_list,'${_symbols_list}'")
  18. elseif (CMAKE_CXX_COMPILER_ID STREQUAL GNU)
  19. # Create a version script for the GNU ld.
  20. set(_symbols "{ global: ${UCHARDET_SYMBOLS}; local: *; };")
  21. set(_version_script "${CMAKE_CURRENT_BINARY_DIR}/version.script")
  22. file(WRITE ${_version_script} "${_symbols}\n")
  23. set(LINK_FLAGS "${LINK_FLAGS} -Wl,--version-script,\"${_version_script}\"")
  24. endif (APPLE)
  25. set_target_properties(
  26. ${UCHARDET_LIBRARY}
  27. PROPERTIES
  28. LINK_FLAGS
  29. "${LINK_FLAGS}"
  30. )