diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 0f4c6e2e..683ac1e5 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -12,7 +12,7 @@ env: BUILD_CONFIGURATION: Release jobs: - build: + build-x86_64: runs-on: windows-2019 steps: @@ -30,6 +30,40 @@ jobs: - name: Fetch all tags run: git fetch --tags --prune --unshallow --force + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -Bbuild -DCMAKE_BUILD_TYPE=${{env.BUILD_CONFIGURATION}} + + - name: Build nim-demo + # Build your program with the given configuration + run: cmake --build build --config ${{env.BUILD_CONFIGURATION}} + + - name: Build nim-demo installer + run: cmake --build build --config ${{env.BUILD_CONFIGURATION}} --target installer + + - uses: actions/upload-artifact@v4 + with: + name: PC_Demo_Setup_x64 + path: bin/NIM_Demo_Setup*.exe + build-x86: + runs-on: windows-2019 + + steps: + - uses: actions/checkout@v2 + + - name: Add MSBuild to PATH + uses: microsoft/setup-msbuild@v1 + + - name: Install Conan + id: conan + uses: turtlebrowser/get-conan@main + with: + version: 1.65.0 + + - name: Fetch all tags + run: git fetch --tags --prune --unshallow --force + - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type @@ -44,5 +78,5 @@ jobs: - uses: actions/upload-artifact@v4 with: - name: PC_Demo_Setup + name: PC_Demo_Setup_Win32 path: bin/NIM_Demo_Setup*.exe diff --git a/README.md b/README.md index 9e4c56c2..374e947f 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,7 @@ 网易云信 PC IM Demo 是基于[网易云信 PC SDK](https://yunxin.163.com/im-sdk-demo) 制作的即时通讯示例程序,UI 库使用 [NIM Duilib](https://github.com/netease-im/NIM_Duilib_Framework) 制作 -![GitHub](https://img.shields.io/badge/license-MIT-green.svg) -[![Actions Status](https://github.com/netease-im/NIM_PC_Demo/workflows/MSBuild/badge.svg)](https://github.com/netease-im/NIM_PC_Demo/actions) +![GitHub](https://img.shields.io/badge/license-MIT-green.svg) | [![Actions Status](https://github.com/netease-im/NIM_PC_Demo/workflows/MSBuild/badge.svg)](https://github.com/netease-im/NIM_PC_Demo/actions) ## 预览 @@ -29,12 +28,24 @@ git clone https://github.com/netease-im/NIM_PC_Demo.git --depth 10 执行如下命令初始化 Debug 调试版本的项目: - > 首次初始化 Debug 或 Release 工程时会自动下载并编译依赖的三方库代码,这个过程可能相对较慢,请耐心等待。当您再次编译时,将不再重复下载和编译三方库代码而是使用上一次编译后的产物。 +> [!NOTE] +> 首次初始化 Debug 或 Release 工程时会自动下载并编译依赖的三方库代码,这个过程可能相对较慢,请耐心等待。当您再次编译时,将不再重复下载和编译三方库代码而是使用上一次编译后的产物。 ```bash +# 生成 64 位 Debug 工程,如果您未指定 Visual Studio 版本将默认使用本机安装的最新版本 +cmake -Bbuild -Ax64 -DCMAKE_BUILD_TYPE=Debug + +# 生成 32 位 Debug 工程 cmake -Bbuild -AWin32 -DCMAKE_BUILD_TYPE=Debug ``` +> [!TIP] +> Visual Studio 2017 以下版本工具链不支持使用 cmake -A 参数来指定目标产物架构,您可以使用如下命令分别生成 32 位和 64 位的工程 +> +> `cmake -Bbuild -G "Visual Studio 15 2017" -DCMAKE_BUILD_TYPE=Debug` +> +> `cmake -Bbuild -G "Visual Studio 15 2017 Win64" -DCMAKE_BUILD_TYPE=Debug` + 您可以通过打开 build 目录下的 `nim_win_demo.sln` 来进行调试或通过 CMake 命令直接编译: ```bash @@ -46,13 +57,20 @@ cmake --build build --config Debug 如您需要编译 Release 版本,则将上面的命令中 Debug 修改为 Release 即可: ```bash +# 生成 64 位 Release 工程, +cmake -Bbuild -Ax64 -DCMAKE_BUILD_TYPE=Release +cmake --build build --config Release + +# 生成 32 位 Release 工程, cmake -Bbuild -AWin32 -DCMAKE_BUILD_TYPE=Release cmake --build build --config Release ``` - > 所有产物均生成在项目根目录下的 bin 文件夹中,项目编译完成后您可以直接从 bin 目录下运行 nim_demo.exe 来启动 Demo +> [!TIP] +> 所有产物均生成在项目根目录下的 bin 文件夹中,项目编译完成后您可以直接从 bin 目录下运行 nim_demo.exe 来启动 Demo - > 需要注意的是,由于 Debug 和 Release 版本的依赖库文件都会拷贝到 bin 目录下,因此在切换 Debug 和 Release 版本时请使用 git clean -xdf 命令清理 bin 目录下的临时文件 +> [!IMPORTANT] +> 需要注意的是,由于 Debug 和 Release 版本的依赖库文件都会拷贝到 bin 目录下,因此在切换 Debug 和 Release 版本时请使用 `git clean -xdf` 命令清理 bin 目录下的临时文件 ### 制作安装包 diff --git a/conanfile.py b/conanfile.py index f7286c05..e856b2cb 100644 --- a/conanfile.py +++ b/conanfile.py @@ -24,17 +24,17 @@ class NebaseConan(ConanFile): exports_sources = "*", "!build" def requirements(self): - self.requires("libjpeg/9e") + self.requires("libjpeg/9c") self.requires("openssl/3.3.2") self.requires("jsoncpp/1.9.5") self.requires("libuv/1.49.0") self.requires("libyuv/1892") - self.requires("sqlite3/3.46.1") + self.requires("sqlite3/3.36.0") self.requires("tinyxml/2.6.2") - self.requires("nim/10.5.0@yunxin/stable") + self.requires("nim/10.7.1@yunxin/stable") self.requires("nertc/4.1.1@yunxin/stable") self.requires("libcef/3.2623.1401@yunxin/stable") - self.requires("ne_live_player/1.1.1@yunxin/stable") + self.requires("ne_live_player/1.6.9@yunxin/stable") self.requires("image_ole/4.2.0@yunxin/stable") self.requires("ne_transfer/0.1.0@yunxin/stable") diff --git a/tool_kits/install/utils/7zDec.h b/tool_kits/install/utils/7zDec.h index f4658ac3..d3f51593 100644 --- a/tool_kits/install/utils/7zDec.h +++ b/tool_kits/install/utils/7zDec.h @@ -20,6 +20,9 @@ #define EXTERN_C_END #endif #endif +#if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86)) +#include +#endif EXTERN_C_BEGIN diff --git a/tool_kits/install/window/setup_wnd.h b/tool_kits/install/window/setup_wnd.h index 7a58979a..1f88f334 100644 --- a/tool_kits/install/window/setup_wnd.h +++ b/tool_kits/install/window/setup_wnd.h @@ -26,7 +26,7 @@ class SetupForm : public ui::WindowImplBase virtual UINT GetClassStyle() const override; virtual void OnFinalMessage(HWND hWnd) override; virtual void InitWindow() override; - virtual HRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) override; + virtual LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) override; virtual bool Notify(ui::EventArgs* msg); private: diff --git a/tool_kits/uninstall/utils/7zDec.h b/tool_kits/uninstall/utils/7zDec.h index cc801aad..a3b2faad 100644 --- a/tool_kits/uninstall/utils/7zDec.h +++ b/tool_kits/uninstall/utils/7zDec.h @@ -19,6 +19,9 @@ #define EXTERN_C_END #endif #endif +#if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_AMD64) || defined(_M_IX86)) +#include +#endif EXTERN_C_BEGIN diff --git a/tool_kits/uninstall/window/setup_wnd.h b/tool_kits/uninstall/window/setup_wnd.h index 42275889..d77b0064 100644 --- a/tool_kits/uninstall/window/setup_wnd.h +++ b/tool_kits/uninstall/window/setup_wnd.h @@ -26,7 +26,7 @@ class SetupForm : public ui::WindowImplBase virtual UINT GetClassStyle() const override; virtual void OnFinalMessage(HWND hWnd) override; virtual void InitWindow() override; - virtual HRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) override; + virtual LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) override; virtual bool Notify(ui::EventArgs* msg); private: