Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用 CMake 构建编译系统 #10

Merged
merged 10 commits into from
Apr 12, 2020
Merged

Conversation

chirsz-ever
Copy link
Collaborator

No description provided.

@chirsz-ever
Copy link
Collaborator Author

chirsz-ever commented Mar 22, 2020

关于静态链接 GDI+ 库:
经测试,GDI+库(libgdiplus.agdiplus.lib)在 VC6 和 MinGW 4.9 里就存在,似乎没有必要将 src/lib 里的静态库以及 gdiplus 头文件和源代码保存在一起。

如果去掉 EGE 中的 GDI+ 库,库文件体积可以减少 1/3,MSVC 可以在 ege.h 中增加 #pragma comment(lib, "gdiplus") 指令来自动链接 GDI+ 库,MinGW 要在链接参数中增加 -lgdiplus

是否移除源代码里的 GDI+ 静态库和头文件? @wysaid

@chirsz-ever
Copy link
Collaborator Author

关于目标名称:
各 MSVC 所对应的 EGE 静态库版本是不同的,比如 Visual Studio 2017 对应 graphics17.libgraphics1764.lib,而 Visual Studio 2015 对应 graphics15.libgraphics1564.lib
即使在同一个系统上安装多个版本的 Visual Studio,它们的静态库位置也是不同的,官网上提供的预编译版本静态库也是将每个文件分开装的,所以没有必要使用不同名称。
是否在 20.04 版本取消名称差别?

@chirsz-ever
Copy link
Collaborator Author

关于 stdint.h
src/ege_head.h 中对 stdint.h 引入的逻辑好像不对,而且我的 Visual Studio 2015 在编译时会在这个 stdint.h 上报错。

xege/src/ege_head.h

Lines 18 to 22 in 471b90e

#if _MSC_VER >= 1910
#include <stdint.h>
#elif !defined(_MSC_VER) || _MSC_VER > 1300
#include "stdint.h"
#endif

@chirsz-ever
Copy link
Collaborator Author

chirsz-ever commented Mar 23, 2020

测试进度

  • Visual C++ 6.0
  • Visual Studio 2008
  • Visual Studio 2010
  • Visual Studio 2012
  • Visual Studio 2013
  • Visual Studio 2015
  • Visual Studio 2017
  • Visual Studio 2019
  • TDM-GCC 9.2
  • Dev-C++ 5.11
  • Code::Blocks 17.12 (必须使用 MSYS Makefile 配置)

@chirsz-ever chirsz-ever marked this pull request as ready for review March 28, 2020 06:41
@chirsz-ever chirsz-ever changed the title [WIP] 使用 CMake 构建编译系统 使用 CMake 构建编译系统 Mar 28, 2020
@chirsz-ever chirsz-ever mentioned this pull request Apr 1, 2020
4 tasks
支持编译 MinGW64 版本

需自行链接 libgdiplus

增加 CMake VC6 支持

增加编译指南

增加各版本 MSVC 支持

更新编译指南

改进判断逻辑

改进判断逻辑

更新编译指南

更新编译指南

修正笔误

更新编译指南

修改文件组织,增加 build_commands.sh

build_commamds.sh 中增加 VS2019 支持

修正 build_commands.sh 中 VC6 编译命令

增加 VS2010 编译命令

统一库文件名称

删除旧的编译配置文件

将 build_commands 改为批处理脚本
修正 stdint.h 的引入逻辑

VC6 编译时报错
修改 CMake 组织

对 LIB_NAME 的选择放在根目录;
为静态库加上链接提示

修改demo使之能在当前版本通过编译

修复 bug

改进 CMake 配置

修改使 demo 兼容 VC6

文档更新
- 减少 ege.h 的 warning
- 修改 EGE_DEPRECATE 的参数以符合描述
使用 "/Zl" 和 "/NODEFAULTLIB" 编译参数使 MSVC 库不引用 MSVCRT(d).lib
@wysaid wysaid merged commit cbcf2cc into wysaid:master Apr 12, 2020
@chirsz-ever chirsz-ever deleted the use-cmake branch April 12, 2020 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants