diff --git a/hcppbox/CMakeLists.txt b/hcppbox/CMakeLists.txt index 7133a1b..3539d4e 100644 --- a/hcppbox/CMakeLists.txt +++ b/hcppbox/CMakeLists.txt @@ -24,6 +24,12 @@ if(CYGWIN) target_link_libraries(HCppBox ws2_32 gdi32) endif() +if(DEFINED ENV{HCPPBOX_USE_PURE_CPLUSPLUS}) + set(HCPPBOX_USE_PURE_CPLUSPLUS ON) +endif() + +if(NOT DEFINED HCPPBOX_USE_PURE_CPLUSPLUS) + include(FindPkgConfig) if(PKG_CONFIG_FOUND) pkg_check_modules(SDL IMPORTED_TARGET sdl) @@ -39,6 +45,8 @@ endif() endif() endif() +endif() + #链接hbox hbox_enable(HCppBox) diff --git a/hcppbox/ReadMe.md b/hcppbox/ReadMe.md index 6542b4c..346dffa 100644 --- a/hcppbox/ReadMe.md +++ b/hcppbox/ReadMe.md @@ -13,6 +13,29 @@ 通用硬件平台一般安装有操作系统,包括但不限Windows、Linux等 +# 宏定义 + +本章节所指宏定义主要指用户传递的宏定义,并非组件内部的宏定义。 + +宏定义通常是通过编译器命令行参数传递的,也可能是编译器预定义的,也可通过特殊的头文件(如config.h)定义。 + +不同的宏定义将触发不同的行为。 + +| 宏定义 | 说明 | 备注 | +| ----------- | --------------------------------------------- | --------------------- | +| `HAVE_SDL` | 为1时表示外部有SDL(1.x)库,某些组件将使用SDL。 | 一般由HCPPGui组件使用 | +| `HAVE_SDL2` | 为1时表示外部有SDL2库,某些组件将使用SDL2。 | | + +# CMake变量 + +本章节的变量主要指CMake中的相关变量,一般由用户设定而非CMake内部变量。 + +变量仅当使用CMake进行构建时有效。 + +| 变量名 | 说明 | 备注 | +| ---------------------------- | ---------------------------------------- | ---------------------------- | +| `HCPPBOX_USE_PURE_CPLUSPLUS` | 当此变量被定义时,将不主动链接第三方库。 | 定义同名的环境变量效果相同。 | + # 组件 ## HCPPObject