From 7567723726e3da22574b5b75801584c695575ea1 Mon Sep 17 00:00:00 2001 From: Rachel Powers <508861+Ryex@users.noreply.github.com> Date: Sun, 26 Mar 2023 11:19:48 -0700 Subject: [PATCH] cleanup of CMakeLists.txt properly deal with extraldflags Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com> --- CMakeLists.txt | 32 ++++++++++++++++++++------------ doc/CMakeLists.txt | 7 ++++--- src/CMakeLists.txt | 22 +++++++++++++++++----- 3 files changed, 41 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 62ed598d..7012abbb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,10 +27,15 @@ config_h_add_compile_definitions(PACKAGE_TARNAME="${PROJECT_NAME}") config_h_add_compile_definitions(PACKAGE_URL="${PROJECT_HOMEPAGE_URL}") config_h_add_compile_definitions(PACKAGE_BUGREPORT="https://github.com/aria2/aria2/issues") config_h_add_compile_definitions(PACKAGE_VERSION="${PROJECT_VERSION}") + +set(BUILD_ID "${CMAKE_HOST_SYSTEM_PROCESSOR}-${CMAKE_HOST_SYSTEM}-${CMAKE_CXX_COMPILER_ID}") +set(HOST_ID "${CMAKE_HOST_SYSTEM_PROCESSOR}-${CMAKE_HOST_SYSTEM}") +set(TARGET_ID "${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_SYSTEM}-${CMAKE_CXX_COMPILER_ID}") + config_h_add_compile_definitions(VERSION="${PROJECT_VERSION}") -config_h_add_compile_definitions(HOST="${CMAKE_HOST_SYSTEM_PROCESSOR}-${CMAKE_HOST_SYSTEM}") -config_h_add_compile_definitions(BUILD="${CMAKE_HOST_SYSTEM_PROCESSOR}-${CMAKE_HOST_SYSTEM}-${CMAKE_CXX_COMPILER_ID}") -config_h_add_compile_definitions(TARGET="${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_SYSTEM}-${CMAKE_CXX_COMPILER_ID}") +config_h_add_compile_definitions(HOST="${HOST_ID}") +config_h_add_compile_definitions(BUILD="${BUILD_ID}") +config_h_add_compile_definitions(TARGET="${TARGET_ID}") if(WIN32) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_POSIX_C_SOURCE=1") @@ -38,7 +43,10 @@ if(WIN32) set(CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS} -Wl,--dynamicbase -Wl,--nxcompat) set(CMAKE_STATIC_LINKER_FLAGS_LINKER_FLAGS ${CMAKE_STATIC_LINKER_FLAGS} -Wl,--dynamicbase -Wl,--nxcompat) - set(EXTRALIBS -lws2_32 -lwsock32 -lgdi32 -liphlpapi -lpsapi ${EXTRALIBS}) + if(MINGW) + set(EXTRALIBS "-lws2_32 -lwsock32 -lgdi32 -liphlpapi -lpsapi ${EXTRALIBS}") + set(EXTRALDFLAGS "${EXTRALDFLAGS} -Wl,--dynamicbase -Wl,--nxcompat") + endif() endif() option(WITH_LIBUV "Build with libuv" off) @@ -131,10 +139,10 @@ else() endif() if(ARIA2_STATIC) - if(WIN32) + if(MINGW) # Define _USE_32BIT_TIME_T because 32bit library of MinGW-w64 # does not implement many 64bit version functions. - set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -D_USE_32BIT_TIME_T) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_USE_32BIT_TIME_T") endif() endif() @@ -917,7 +925,7 @@ endif() if(ARIA2_STATIC) if(NOT WIN32 AND NOT APPLE) - set(EXTRALIBS -lpthread -ldl -lrt ${EXTRALIBS}) + set(EXTRALIBS "-lpthread -ldl -lrt ${EXTRALIBS}") endif() endif() @@ -941,9 +949,9 @@ add_subdirectory(test) message(STATUS "summary of build options: \n\ -Build: ${CMAKE_HOST_SYSTEM_PROCESSOR}-${CMAKE_HOST_SYSTEM}-${CMAKE_CXX_COMPILER_ID} -Host: ${CMAKE_HOST_SYSTEM_PROCESSOR}-${CMAKE_HOST_SYSTEM} -Target: ${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_SYSTEM}-${CMAKE_CXX_COMPILER_ID} +Build: ${BUILD_ID} +Host: ${HOST_ID} +Target: ${TARGET_ID} Install prefix: ${CMAKE_INSTALL_PREFIX} CC: ${CMAKE_C_COMPILER} CXX: ${CMAKE_CXX_COMPILER} @@ -1029,8 +1037,8 @@ add_custom_target(clang-format ) # ########## install files ############### -install(FILES README README.rst README.html DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -install(FILES LICENSE.OpenSSL DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +install(FILES README README.rst README.html TYPE DOC) +install(FILES LICENSE.OpenSSL DESTINATION TYPE DOC) # original Makefile.am contents follow: diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 505997d7..cbeb869e 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -2,11 +2,12 @@ add_subdirectory(manual-src) + ########### install files ############### -install(FILES xmlrpc/aria2mon xmlrpc/aria2rpc xmlrpc/README.txt DESTINATION ${CMAKE_INSTALL_DOCDIR}/xmlrpc) -install(FILES bash_completion/README.txt DESTINATION ${CMAKE_INSTALL_DOCDIR}/bash_completion) -install(FILES bash_completion/aria2c DESTINATION ${CMAKE_INSTALL_DOCDIR}/bash_completion) +install(FILES xmlrpc/aria2mon xmlrpc/aria2rpc xmlrpc/README.txt TYPE DOC) +install(FILES bash_completion/README.txt DESTINATION TYPE DOC) +install(FILES bash_completion/aria2c DESTINATION TYPE DOC) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0761c141..0aff413d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1277,15 +1277,17 @@ if(ENABLE_LIBARIA2) set(LIBARIA2_BUILD_MODE SHARED) - if(MSVC) - set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + if(WIN_BUILD) + set(EXTRALDFLAGS "${EXTRALDFLAGS} -no-undefined") endif() -# add_library(aria2 SHARED ${aria2_SRCS}) else() set(LIBARIA2_BUILD_MODE STATIC) - # add_library(aria2 STATIC ${aria2_SRCS}) +endif() + +if(MSVC) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) endif() add_library(aria2 ${LIBARIA2_BUILD_MODE} ${aria2_SRCS}) @@ -1391,17 +1393,27 @@ if(ENABLE_WEBSOCKET) target_link_libraries(aria2 wslay) endif() +if(ARIA2_STATIC) + set(EXTRALDFLAGS "${EXTRALDFLAGS} -all-static") + if(MINGW OR MSVC OR APPLE) + else() + set(EXTRALDFLAGS "${EXTRALDFLAGS} -lpthread -ldl -lrt") + endif() +endif() + set_target_properties(aria2 PROPERTIES VERSION 0.0.0 SOVERSION 1) +target_link_libraries(aria2 ${EXTRALDFLAGS}) install(TARGETS aria2 ${INSTALL_TARGETS_DEFAULT_ARGS}) target_link_libraries(aria2c aria2) +target_link_libraries(aria2c ${EXTRALDFLAGS}) # ########## next target ############### # add_library(aria2_static STATIC ${aria2_SRCS}) # ########## install files ############### -install(FILES libaria2.pc DESTINATION lib) +install(FILES libaria2.pc DESTINATION lib/pkgconfig) # original Makefile.am contents follow: