config:移除xmake,设置针对boost设置具体信息而不是find_package.

This commit is contained in:
taynpg 2025-02-15 23:34:27 +08:00
parent 766b4f8cdd
commit ceed885924
15 changed files with 66 additions and 100 deletions

2
.gitignore vendored
View File

@ -1,4 +1,4 @@
build
buil*
.vs
.cache
cmake-*

View File

@ -27,6 +27,10 @@
"cmake.environment": {
"PATH": "${env:PATH};"
},
// "cmake.configureArgs": [
// "-Wno-dev",
// "-DSYSTEM_XP=ON"
// ],
"cmake.options.statusBarVisibility": "visible",
"cmake.generator": "Ninja",
"C_Cpp.default.compileCommands": "${workspaceRoot}/build/compile_commands.json",

View File

@ -1,24 +1,37 @@
cmake_minimum_required(VERSION 3.16)
project(transm LANGUAGES CXX)
project(transm VERSION 1.2.3 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(COMPILER_ID ${CMAKE_CXX_COMPILER_ID})
if(MSVC)
add_compile_options(/source-charset:utf-8)
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_SYSTEM_NAME MATCHES "Windows")
message(status "add mingw param.")
message(STATUS "add mingw param.")
add_compile_options(-finput-charset=utf-8)
add_compile_options(-fexec-charset=gbk)
add_compile_options(-Wa,-mbig-obj)
set(COMPILER_ID "mingw")
set(MINGW32_XP_BOOST ON)
add_definitions(-DMINGW32_XP_BOOST)
include(config/MBoost.cmake)
endif()
string(TOLOWER ${COMPILER_ID} COMPILER_ID)
if(DEFINED IOS_ISH)
message(STATUS "INPUT IOS_ISH ${IOS_ISH}")
endif()
if(DEFINED MINGW32_XP_BOOST)
message(STATUS "transm use xp defined ${SYSTEM_XP}")
add_definitions(-D_WIN32_WINNT=0x0501)
else()
add_definitions(-D_WIN32_WINNT=0x0601)
endif()
set(CMAKE_DEBUG_POSTFIX "d")
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
@ -26,7 +39,6 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
)
add_definitions(-DFMT_HEADER_ONLY)
add_definitions(-D_WIN32_WINNT=0x0601)
include_directories(3rd)
include_directories(.)
include_directories(${PROJECT_BINARY_DIR})
@ -51,13 +63,18 @@ execute_process(
OUTPUT_STRIP_TRAILING_WHITESPACE
)
configure_file(version.h.in version.h)
message(STATUS "build dir:${PROJECT_BINARY_DIR}")
message(STATUS "${CMAKE_SYSTEM_NAME} build dir:${PROJECT_BINARY_DIR}")
install(TARGETS tsc DESTINATION bin)
install(TARGETS tss DESTINATION bin)
if (DEFINED MINGW32_XP_BOOST)
install(FILES ${MINGW32_DLLS} DESTINATION bin)
install(FILES ${WIN_XP_COLOR_TOOL} DESTINATION bin)
endif()
# ********************************************************** pack infomation
set(CPACK_PACKAGE_NAME "transm")
set(CPACK_PACKAGE_VERSION "1.2.3")
set(CPACK_PACKAGE_CONTACT "taynpg <taynpg@163.com>")
set(CPACK_PACKAGE_DESCRIPTION "A simple tool that uses a server (tss) as a relay center to indirectly transfer files between two (or more) clients (tsc).")
set(CPACK_PACKAGE_VENDOR "taynpg")
@ -65,13 +82,17 @@ if(WIN32)
set(CPACK_NSIS_MODIFY_PATH ON)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(CPACK_GENERATOR "NSIS64;ZIP")
set(ARCH_SUFFIX "win64")
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(CPACK_GENERATOR "NSIS;ZIP")
set(ARCH_SUFFIX "win32")
else()
message(WARNING "Unknown target architecture")
endif()
set(CPACK_PACKAGE_INSTALL_DIRECTORY "transm")
elseif(UNIX AND NOT APPLE)
set(CPACK_GENERATOR "DEB;TGZ")
set(ARCH_SUFFIX "amd64")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
set(CPACK_DEBIAN_PACKAGE_SECTION "utils")
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
@ -79,4 +100,5 @@ elseif(UNIX AND NOT APPLE)
elseif(APPLE)
set(CPACK_GENERATOR "DragNDrop")
endif()
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-v${PROJECT_VERSION}-${COMPILER_ID}.${ARCH_SUFFIX}")
include(CPack)

View File

@ -6,6 +6,11 @@ set(CMAKE_CXX_STANDARD 17)
if (MSVC)
add_compile_options(/source-charset:utf-8)
endif()
if(DEFINED MINGW32_XP_BOOST)
message(STATUS "tsc use mingw32 xp boost.")
include_directories(${MBOOST_INCLUDE_DIR})
link_directories(${MBOOST_LIB_DIR})
endif()
add_executable(tsc main.cpp client.h client.cpp config.h config.cpp)
target_link_libraries(tsc PRIVATE trans_net trans_util filecomplete)
@ -14,4 +19,8 @@ target_link_libraries(tsc PRIVATE pthread)
endif()
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_SYSTEM_NAME MATCHES "Windows")
target_link_libraries(tsc PRIVATE ws2_32 wsock32)
endif()
if(DEFINED MINGW32_XP_BOOST)
target_link_directories(tsc PRIVATE ${MBOOST_LIB_DIR})
target_link_libraries(tsc PRIVATE ${MBOOST_LIBS})
endif()

View File

@ -5,7 +5,7 @@
#include <of_str.h>
#include <of_util.h>
#ifdef USE_BOOST_FILESYSTEM
#ifdef MINGW32_XP_BOOST
#include <boost/filesystem.hpp>
namespace fs = boost::filesystem;
#else

View File

@ -1,7 +1,7 @@
#include "config.h"
#include <cassert>
#ifdef USE_BOOST_FILESYSTEM
#ifdef MINGW32_XP_BOOST
#include <boost/filesystem.hpp>
namespace fs = boost::filesystem;
#else

View File

@ -1,26 +0,0 @@
add_rules("mode.debug", "mode.release")
set_languages("c++17")
add_includedirs(os.scriptdir())
target("tsc")
add_options("boost")
set_kind("binary")
add_files("*.cpp")
add_deps("ofen")
add_deps("trans_util")
add_deps("trans_net")
add_deps("filecomplete")
if is_plat("mingw") then
add_links("ws2_32", "wsock32")
end
option("boost")
set_default(false)
set_showmenu(true)
boost_root_dir = os.getenv("BOOST_HEADER_DIR")
boost_lib_dir = os.getenv("BOOST_LIB_DIR")
boost_libs = os.getenv("BOOST_LIBS")
add_includedirs(boost_root_dir)
add_defines("USE_BOOST_FILESYSTEM")
add_linkdirs(boost_lib_dir)
add_links(boost_libs)

13
config/MBoost.cmake Normal file
View File

@ -0,0 +1,13 @@
set(MBOOST_INCLUDE_DIR "C:/boost/include/boost-1_83")
set(MBOOST_LIB_DIR "C:/boost/lib")
set(MBOOST_LIBS "boost_filesystem-mgw7-mt-x32-1_83")
get_filename_component(CXX_COMPILER_PATH ${CMAKE_CXX_COMPILER} DIRECTORY)
set(MINGW32_DLLS
"${CXX_COMPILER_PATH}/libgcc_s_dw2-1.dll"
"${CXX_COMPILER_PATH}/libstdc++-6.dll"
"${CXX_COMPILER_PATH}/libwinpthread-1.dll"
)
set(WIN_XP_COLOR_TOOL
"C:/xp/ansicon.exe"
"C:/xp/ANSI32.dll"
)

@ -1 +1 @@
Subproject commit 1106518755bc91afb0a110a1b589eca031d980e2
Subproject commit a7c6434a7c333a19727aeab8212d20604426b701

View File

@ -1,15 +0,0 @@
add_rules("mode.debug", "mode.release")
set_languages("c++17")
if is_mode("debug") then
set_suffixname("d")
end
add_includedirs(os.scriptdir(), {public = true})
target("trans_net")
set_kind("static")
add_files("*.cpp")
add_deps("ofen")
add_deps("trans_util")
if is_plat("mingw") then
add_links("ws2_32", "wsock32")
end

2
ofen

@ -1 +1 @@
Subproject commit 44c536c583948ac6768fa8b536b9a6222c845bf7
Subproject commit 36e05d261821048a4c2fec1042434dd2dfc9b6de

View File

@ -6,9 +6,17 @@ set(CMAKE_CXX_STANDARD 17)
if (MSVC)
add_compile_options(/source-charset:utf-8)
endif()
if(DEFINED MINGW32_XP_BOOST)
message(STATUS "tss use mingw32 xp boost.")
include_directories(${MBOOST_INCLUDE_DIR})
endif()
add_executable(tss main.cpp server.h server.cpp)
target_link_libraries(tss PRIVATE trans_net trans_util)
if(DEFINED MINGW32_XP_BOOST)
target_link_directories(tss PRIVATE ${MBOOST_LIB_DIR})
target_link_libraries(tss PRIVATE ${MBOOST_LIBS})
endif()
if (UNIX)
target_link_libraries(tss PRIVATE pthread)
endif()

View File

@ -1,13 +0,0 @@
add_rules("mode.debug", "mode.release")
set_languages("c++17")
add_includedirs(os.scriptdir())
target("tss")
set_kind("binary")
add_files("*.cpp")
add_deps("ofen")
add_deps("trans_util")
add_deps("trans_net")
if is_plat("mingw") then
add_links("ws2_32", "wsock32")
end

View File

@ -1,14 +0,0 @@
add_rules("mode.debug", "mode.release")
set_languages("c++17")
if is_plat("windows") then
add_cxxflags("/source-charset:utf-8")
end
if is_mode("debug") then
set_suffixname("d")
end
add_includedirs(os.scriptdir(), {public = true})
target("trans_util")
set_kind("static")
add_files("*.cpp")
add_deps("ofen")
add_deps("filecomplete")

View File

@ -1,22 +0,0 @@
add_rules("mode.debug", "mode.release")
set_languages("c++17")
if is_plat("windows") then
add_cxxflags("/source-charset:utf-8")
end
if is_plat("mingw") then
add_cxxflags("-Wno-unused-variable -finput-charset=utf-8 -fexec-charset=gbk")
end
if has_config("xp") then
add_defines("_WIN32_WINNT=0x0501")
else
add_defines("_WIN32_WINNT=0x0601")
end
add_defines("FMT_HEADER_ONLY")
add_includedirs("$(projectdir)/3rd", {public = true})
add_includedirs("$(projectdir)/build", {public = true})
includes("util", "ofen", "net", "server", "client", "filecomplete")
add_configfiles("config.h.in", {filename = "version.h"})
option("xp")
set_default(false)
set_showmenu(true)