Skip to content

Commit f6f3334

Browse files
committed
again
1 parent 3cbdb0c commit f6f3334

File tree

6 files changed

+55
-26
lines changed

6 files changed

+55
-26
lines changed

.github/workflows/windows-msvc.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,9 @@ jobs:
142142
id: cmake-fetch-content-cache
143143
with:
144144
path: |
145-
C:/Program Files/Botan
146-
C:/Program Files/OpenSSL
145+
C:/Botan
146+
C:/OpenSSL
147+
C:/c-ares
147148
key: windows-fetch-${{matrix.build-type}}-${{matrix.tls-provider}}
148149

149150
- name: Configure Cmake

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@ endif()
5252
# Change TRANTOR_TLS_PROVIDER ON/OFF to String
5353
if(TRANTOR_TLS_PROVIDER STREQUAL OFF)
5454
set(TRANTOR_TLS_PROVIDER
55-
"botan-3"
55+
"none"
5656
CACHE STRING "" FORCE
5757
)
5858
elseif(TRANTOR_TLS_PROVIDER STREQUAL ON)
5959
set(TRANTOR_TLS_PROVIDER
60-
"auto"
60+
"botan-3"
6161
CACHE STRING "" FORCE
6262
)
6363
else()

cmake/SetBotan.cmake

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,15 @@ macro(build_install_botan)
1717
get_lowcase_compiler_id()
1818

1919
# configure build and install
20-
20+
execute_process(
21+
COMMAND ${PYTHON_EXECUTABLE} ${botan_SOURCE_DIR}/configure.py --prefix=${BOTAN_ROOT_DIR}
22+
--cc=${cmake_cxx_compiler_id} --disable-deprecated-features --with-pkg-config --build-target=shared
23+
WORKING_DIRECTORY ${botan_BINARY_DIR}
24+
)
2125
if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
22-
execute_process(
23-
COMMAND
24-
${PYTHON_EXECUTABLE} ${botan_SOURCE_DIR}/configure.py --prefix=${BOTAN_ROOT_DIR} --cc=${cmake_cxx_compiler_id}
25-
--build-tool=ninja --disable-deprecated-features --with-pkg-config --build-target=shared
26-
WORKING_DIRECTORY ${botan_BINARY_DIR}
27-
)
28-
execute_process(COMMAND ninja WORKING_DIRECTORY ${botan_BINARY_DIR})
29-
execute_process(COMMAND ninja install WORKING_DIRECTORY ${botan_BINARY_DIR})
26+
execute_process(COMMAND nmake WORKING_DIRECTORY ${botan_BINARY_DIR})
27+
execute_process(COMMAND nmake install WORKING_DIRECTORY ${botan_BINARY_DIR})
3028
else()
31-
execute_process(
32-
COMMAND ${PYTHON_EXECUTABLE} ${botan_SOURCE_DIR}/configure.py --prefix=${BOTAN_ROOT_DIR}
33-
--cc=${cmake_cxx_compiler_id} --disable-deprecated-features --with-pkg-config --build-target=shared
34-
WORKING_DIRECTORY ${botan_BINARY_DIR}
35-
)
3629
execute_process(COMMAND make -j4 WORKING_DIRECTORY ${botan_BINARY_DIR})
3730
execute_process(COMMAND make install WORKING_DIRECTORY ${botan_BINARY_DIR})
3831
endif()
@@ -93,7 +86,7 @@ endif()
9386
# Set BOTAN_ROOT_DIR, to let find_package could search from it
9487
if(WIN32)
9588
set(BOTAN_ROOT_DIR
96-
${CMAKE_INSTALL_PREFIX}/../Botan
89+
C:/Botan
9790
CACHE PATH "Let find_package use the directory to find" FORCE
9891
)
9992
else()

cmake/SetCAres.cmake

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,28 @@
1-
# add c-ares
2-
macro(add_cares)
1+
# build and install c-ares
2+
macro(build_install_cares)
33
if(NOT c-ares_DOWNLOAD_URL)
44
get_github_latest_release_url("c-ares" "c-ares")
55
endif()
66
FetchContent_Declare(c-ares URL ${c-ares_DOWNLOAD_URL})
7-
FetchContent_MakeAvailable(c-ares)
7+
# not using FetchContent_MakeAvailable to save compile time
8+
FetchContent_GetProperties(c-ares)
9+
10+
if(NOT c-ares_POPULATED)
11+
FetchContent_Populate(c-ares)
12+
13+
# configure build and install, c-ares provided makefiles already, using them to build is faster
14+
if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
15+
execute_process(COMMAND buildconf.bat WORKING_DIRECTORY ${c-ares_SOURCE_DIR})
16+
execute_process(COMMAND nmake -f Makefile.msvc WORKING_DIRECTORY ${c-ares_SOURCE_DIR})
17+
set(ENV{INSTALL_DIR} ${C-ARES_DIR})
18+
execute_process(COMMAND nmake -f Makefile.msvc install WORKING_DIRECTORY ${c-ares_SOURCE_DIR})
19+
else()
20+
execute_process(COMMAND ./buildconf WORKING_DIRECTORY ${c-ares_SOURCE_DIR})
21+
execute_process(COMMAND make WORKING_DIRECTORY ${c-ares_SOURCE_DIR})
22+
execute_process(COMMAND make --install WORKING_DIRECTORY ${c-ares_SOURCE_DIR})
23+
endif()
24+
25+
endif()
826
endmacro()
927

1028
# Set normal resolver
@@ -30,12 +48,28 @@ macro(set_cares_resolver)
3048
list(APPEND TRANTOR_SOURCES trantor/net/inner/AresResolver.cc)
3149
list(APPEND private_headers trantor/net/inner/AresResolver.h)
3250

51+
# copy dll/libs for Windows, to solve the test/unittests running 0x000135 error
52+
copy_files_for_win(${C-ARES_DIR}/bin "dll")
53+
copy_files_for_win(${C-ARES_DIR}/lib "lib")
54+
copy_files_for_win(${C-ARES_DIR}/lib "dll")
3355
endmacro()
3456

3557
# ######################################################################################################################
3658
message(STATUS "Setting c-ares: ${TRANTOR_USE_C-ARES}")
3759

3860
if(TRANTOR_USE_C-ARES)
61+
# Set C-ARES_DIR, to let find_package could search from it
62+
if(WIN32)
63+
set(C-ARES_DIR
64+
c:/c-ares
65+
CACHE PATH "Let find_package use the directory to find" FORCE
66+
)
67+
else()
68+
set(C-ARES_DIR
69+
${CMAKE_INSTALL_PREFIX}/c-ares
70+
CACHE PATH "Let find_package use the directory to find" FORCE
71+
)
72+
endif()
3973

4074
find_package(c-ares)
4175

@@ -44,7 +78,8 @@ if(TRANTOR_USE_C-ARES)
4478
message(STATUS "⚠️c-ares not found, Building it with FetchContent...")
4579
unset(c-ares_FOUND)
4680

47-
add_cares()
81+
build_install_cares()
82+
find_package(c-ares REQUIRED)
4883

4984
else()
5085
message(FATAL_ERROR "⛔c-ares not found, please install it or set FETCH_BUILD_MISSING_DEPS to ON")

cmake/SetOpenssl.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ message(STATUS "Trantor using SSL library: openssl")
6262
# Set OPENSSL_ROOT_DIR, to let find_package could search from the build directory
6363
if(WIN32)
6464
set(OPENSSL_ROOT_DIR
65-
${CMAKE_INSTALL_PREFIX}/../OpenSSL
65+
C:/OpenSSL
6666
CACHE PATH "Let find_package use the directory to find" FORCE
6767
)
6868
else()

cmake_modules/Findc-ares.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
find_path(
1313
C-ARES_INCLUDE_DIRS
1414
NAMES ares.h
15-
HINTS ${C-ARES_ROOT_DIR}/include
15+
HINTS ${C-ARES_DIR}/include
1616
)
1717
find_library(
1818
C-ARES_LIBRARIES
1919
NAMES cares
20-
HINTS ${C-ARES_ROOT_DIR}/lib
20+
HINTS ${C-ARES_DIR}/lib
2121
)
2222
if(C-ARES_INCLUDE_DIRS AND C-ARES_LIBRARIES)
2323
if(NOT TARGET c-ares::cares)

0 commit comments

Comments
 (0)