cleanup of CMakeLists.txt

properly deal with extraldflags

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
pull/2045/head
Rachel Powers 2023-03-26 11:19:48 -07:00
parent 461f9abcc9
commit 7567723726
3 changed files with 41 additions and 20 deletions

View File

@ -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:

View File

@ -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)

View File

@ -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: