浏览代码

cmake/modules: 提升 QSCINTILLA_EXPORT 的可传染性编译时宏定义

zinface 2 年之前
父节点
当前提交
6597452033
共有 2 个文件被更改,包括 19 次插入19 次删除
  1. 14 16
      cmake/modules/Notepad--.cmake
  2. 5 3
      cmake/modules/QScint.cmake

+ 14 - 16
cmake/modules/Notepad--.cmake

@@ -53,20 +53,18 @@ endif(TRUE)
 
 # ----------------- Notepad-- 构建宏支持相关  ----------------- #
 
-if(WIN32)
-    # 在 Windows 中构建时,需要关注此库的构建形式,QScintilla 应该以何种方式编译
-    target_compile_definitions(${PROJECT_NAME} 
-        PRIVATE 
-            NO_PLUGIN       # 开启插件支持
-            QSCINTILLA_DLL  # 目前在 Windows 中使用 QSci 库时应该采用 Q_DECL_IMPORT
-                            # 控制 QSCINTILLA_EXPORT 符号应为 Q_DECL_IMPORT
-    )
-endif(WIN32)
+# 在 Windows 中构建时,需要关注此库的构建形式,QScintilla 应该以何种方式编译
+target_compile_definitions(${PROJECT_NAME} 
+    PRIVATE 
+        NO_PLUGIN       # 开启插件支持
+)
+
+# 用于打印目标属性生成器调试信息的自定义目标
+add_custom_target(targetdebug 
+    COMMAND 
+        ${CMAKE_COMMAND} -E echo 
+            ">>>>> Notepad-- COMPILE_DEFINITIONS: $<TARGET_PROPERTY:Notepad--,COMPILE_DEFINITIONS>"
+    COMMAND 
+        ${CMAKE_COMMAND} -E echo 
+            ">>>>> Notepad-- LINK_LIBRARIES: $<TARGET_PROPERTY:Notepad--,LINK_LIBRARIES>")
 
-if(UNIX)
-    # 在 Windows 中构建时,需要关注此库的构建形式,QScintilla 应该以何种方式编译
-    target_compile_definitions(${PROJECT_NAME} 
-        PRIVATE 
-            NO_PLUGIN       # 开启插件支持
-    )
-endif(UNIX)

+ 5 - 3
cmake/modules/QScint.cmake

@@ -57,10 +57,12 @@ if(WIN32)
             SCINTILLA_QT                # 
             SCI_LEXER                   # 
             INCLUDE_DEPRECATED_FEATURES # 
-            QSCINTILLA_MAKE_DLL         # 在 Windows 中构建此库时应该采用 Q_DECL_EXPORT
-                                        # 并且在 Windows 中使用此库时应该采用 Q_DECL_IMPORT
-                                        # 控制 QSCINTILLA_EXPORT 符号应为:
+
+        # 控制 QSCINTILLA_EXPORT 符号应为:
                                         # 构建时(导出),由外部使用时(导入)
+            QSCINTILLA_MAKE_DLL         # 在 Windows 中构建此库时应该采用 Q_DECL_EXPORT
+        INTERFACE
+            QSCINTILLA_DLL              # 在 Windows 中使用此库时应该采用 Q_DECL_IMPORT
     )
 endif(WIN32)