2
0

export_head.cmake 1.3 KB

123456789101112131415161718192021222324252627
  1. include(GenerateExportHeader)
  2. function(define_export_head shared static file_name base_name)
  3. generate_export_header(${shared}
  4. EXPORT_FILE_NAME "${CMAKE_BINARY_DIR}/${INSTALL_INCLUDEDIR}/${file_name}.h" # 导出的位置
  5. BASE_NAME "${base_name}")
  6. target_compile_definitions(${static} PUBLIC "${base_name}_STATIC_DEFINE")
  7. set_property(TARGET ${shared}
  8. PROPERTY C_VISIBILITY_PRESET "hidden")
  9. set_property(TARGET ${shared}
  10. PROPERTY VISIBILITY_INLINES_HIDDEN TRUE)
  11. set_property(TARGET ${static}
  12. PROPERTY C_VISIBILITY_PRESET "default")
  13. set_property(TARGET ${static}
  14. PROPERTY VISIBILITY_INLINES_HIDDEN FALSE)
  15. endfunction()
  16. define_export_head(tool-shared tool-static aFunToolExport AFUN_TOOL)
  17. define_export_head(code-shared code-static aFunCodeExport AFUN_CODE)
  18. define_export_head(core-shared core-static aFunCoreExport AFUN_CORE)
  19. define_export_head(parser-shared parser-static aFunParserExport AFUN_PARSER)
  20. define_export_head(rt-shared rt-static aFunRuntimeExport AFUN_RT)
  21. define_export_head(it-shared it-static aFunlangExport AFUN_LANG)
  22. # 两个库需要额外定义
  23. target_compile_definitions(tool-static-c PUBLIC AFUN_TOOL_STATIC_DEFINE)
  24. target_compile_definitions(tool-shared-c PRIVATE tool_shared_EXPORTS)