diff --git a/CMakeLists.txt b/CMakeLists.txt index 50e5810..bdb8195 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,17 +1,22 @@ cmake_minimum_required(VERSION 3.10) project(PathEditor C) -# Compile flags and definitions +# 设置 C 标准 +set(CMAKE_C_STANDARD 17) +set(CMAKE_C_STANDARD_REQUIRED ON) +set(CMAKE_C_EXTENSIONS OFF) # 禁用特定编译器的扩展(如 gnu17),强制使用标准 C17 + +# 编译选项和宏定义 add_compile_options(-Wall -O2 -fexec-charset=UTF-8) add_compile_definitions(_WIN32 UNICODE _UNICODE) -# Include directories +# 头文件包含目录 include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/libs/iup-3.31_Win64_dllw6_lib/include ) -# Source files +# 源代码文件 set(SOURCES src/main.c src/utils.c @@ -21,20 +26,20 @@ set(SOURCES src/globals.c ) -# Resource file +# 资源文件 set(RESOURCES ico/resources.rc ) -# Library directories +# 库文件目录 link_directories( ${CMAKE_CURRENT_SOURCE_DIR}/libs/iup-3.31_Win64_dllw6_lib ) -# Create WIN32 executable (automatically adds -mwindows and handles .rc files) +# 创建 WIN32 可执行文件 (自动添加 -mwindows 并处理 .rc 资源文件) add_executable(${PROJECT_NAME} WIN32 ${SOURCES} ${RESOURCES}) -# Link libraries +# 链接依赖库 target_link_libraries(${PROJECT_NAME} PRIVATE iup iupcd @@ -46,10 +51,10 @@ target_link_libraries(${PROJECT_NAME} PRIVATE advapi32 ) -# Copy DLLs to the build directory after building +# 编译完成后,将 DLL 文件复制到构建输出目录 add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/libs/iup-3.31_Win64_dllw6_lib/" "$" COMMENT "Copying DLLs to build directory..." -) \ No newline at end of file +) diff --git a/bin/PathEditor.exe b/bin/PathEditor.exe deleted file mode 100644 index 0fc001c..0000000 Binary files a/bin/PathEditor.exe and /dev/null differ diff --git a/bin/freetype6.dll b/bin/freetype6.dll deleted file mode 100644 index e8c3c21..0000000 Binary files a/bin/freetype6.dll and /dev/null differ diff --git a/bin/ftgl.dll b/bin/ftgl.dll deleted file mode 100644 index 97fc44d..0000000 Binary files a/bin/ftgl.dll and /dev/null differ diff --git a/bin/iup.dll b/bin/iup.dll deleted file mode 100644 index aceb679..0000000 Binary files a/bin/iup.dll and /dev/null differ diff --git a/bin/iup_mglplot.dll b/bin/iup_mglplot.dll deleted file mode 100644 index 81afca5..0000000 Binary files a/bin/iup_mglplot.dll and /dev/null differ diff --git a/bin/iup_plot.dll b/bin/iup_plot.dll deleted file mode 100644 index 3bc153e..0000000 Binary files a/bin/iup_plot.dll and /dev/null differ diff --git a/bin/iup_scintilla.dll b/bin/iup_scintilla.dll deleted file mode 100644 index 96a09b8..0000000 Binary files a/bin/iup_scintilla.dll and /dev/null differ diff --git a/bin/iupcd.dll b/bin/iupcd.dll deleted file mode 100644 index a0c78a0..0000000 Binary files a/bin/iupcd.dll and /dev/null differ diff --git a/bin/iupcontrols.dll b/bin/iupcontrols.dll deleted file mode 100644 index 89a2aef..0000000 Binary files a/bin/iupcontrols.dll and /dev/null differ diff --git a/bin/iupgl.dll b/bin/iupgl.dll deleted file mode 100644 index daeb402..0000000 Binary files a/bin/iupgl.dll and /dev/null differ diff --git a/bin/iupglcontrols.dll b/bin/iupglcontrols.dll deleted file mode 100644 index 43b6a94..0000000 Binary files a/bin/iupglcontrols.dll and /dev/null differ diff --git a/bin/iupim.dll b/bin/iupim.dll deleted file mode 100644 index 34909fe..0000000 Binary files a/bin/iupim.dll and /dev/null differ diff --git a/bin/iupimglib.dll b/bin/iupimglib.dll deleted file mode 100644 index 221ff24..0000000 Binary files a/bin/iupimglib.dll and /dev/null differ diff --git a/bin/iupole.dll b/bin/iupole.dll deleted file mode 100644 index 47719a5..0000000 Binary files a/bin/iupole.dll and /dev/null differ diff --git a/bin/iuptuio.dll b/bin/iuptuio.dll deleted file mode 100644 index 1b56326..0000000 Binary files a/bin/iuptuio.dll and /dev/null differ diff --git a/bin/zlib1.dll b/bin/zlib1.dll deleted file mode 100644 index 4f435eb..0000000 Binary files a/bin/zlib1.dll and /dev/null differ diff --git a/dist/installer.iss b/dist/installer.iss index 512f122..e2b4605 100644 --- a/dist/installer.iss +++ b/dist/installer.iss @@ -37,8 +37,8 @@ Name: "english"; MessagesFile: "compiler:Default.isl" Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] -Source: "d:\Code\doing_exercises\programs\PathEditor\bin\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion -Source: "d:\Code\doing_exercises\programs\PathEditor\bin\*.dll"; DestDir: "{app}"; Flags: ignoreversion +Source: "d:\Code\doing_exercises\programs\PathEditor\build\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion +Source: "d:\Code\doing_exercises\programs\PathEditor\build\*.dll"; DestDir: "{app}"; Flags: ignoreversion ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Icons] diff --git a/src/main.c b/src/main.c index 80d0ab3..e70379b 100644 --- a/src/main.c +++ b/src/main.c @@ -11,9 +11,10 @@ #include "config.h" /* -编译命令: -Remove-Item -Path "obj\*.o" -Force -ErrorAction SilentlyContinue && mingw32-make -打包命令: +!编译命令: +cmake -B build -G "MinGW Makefiles" +cmake --build build +!打包命令: build_installer.bat */