mirror of
https://github.com/oxen-io/lokinet
synced 2023-12-14 06:53:00 +01:00
make windows fixes
This commit is contained in:
parent
b8eb9cdb2e
commit
6e5cab971f
|
@ -82,6 +82,12 @@ matrix:
|
||||||
dist: xenial
|
dist: xenial
|
||||||
env: DOCKER_FILE=docker/gcc-trunk.Dockerfile
|
env: DOCKER_FILE=docker/gcc-trunk.Dockerfile
|
||||||
services: docker
|
services: docker
|
||||||
|
- os: osx
|
||||||
|
osx_image: xcode10.2
|
||||||
|
env: MAKE_TARGET=windows
|
||||||
|
- os: osx
|
||||||
|
osx_image: xcode10.2
|
||||||
|
env: MAKE_TARGET=windows-release
|
||||||
|
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
|
|
|
@ -173,22 +173,21 @@ if(STATIC_LINK_RUNTIME)
|
||||||
else()
|
else()
|
||||||
add_compile_options(-static)
|
add_compile_options(-static)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||||
link_libraries( -static -static-libstdc++ -pthread -flto )
|
link_libraries( -static -static-libstdc++ -pthread -flto )
|
||||||
|
elseif(NOT CMAKE_CROSSCOMPILING)
|
||||||
|
# this is messing with release builds
|
||||||
|
add_compile_options(-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0)
|
||||||
|
set(CMAKE_AR "gcc-ar")
|
||||||
|
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qcs <TARGET> <LINK_FLAGS> <OBJECTS>")
|
||||||
|
set(CMAKE_C_ARCHIVE_FINISH "true")
|
||||||
|
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qcs <TARGET> <LINK_FLAGS> <OBJECTS>")
|
||||||
|
set(CMAKE_CXX_ARCHIVE_FINISH "true")
|
||||||
|
link_libraries( -flto -static-libstdc++ -static-libgcc -static -Wl,--whole-archive -lpthread -Wl,--no-whole-archive )
|
||||||
else()
|
else()
|
||||||
if(NOT CMAKE_CROSSCOMPILING)
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libstdc++ -static-libgcc -static -Wl,--whole-archive -lpthread -Wl,--no-whole-archive" )
|
||||||
# this is messing with release builds
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
|
||||||
add_compile_options(-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0)
|
|
||||||
set(CMAKE_AR "gcc-ar")
|
|
||||||
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qcs <TARGET> <LINK_FLAGS> <OBJECTS>")
|
|
||||||
set(CMAKE_C_ARCHIVE_FINISH "true")
|
|
||||||
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qcs <TARGET> <LINK_FLAGS> <OBJECTS>")
|
|
||||||
set(CMAKE_CXX_ARCHIVE_FINISH "true")
|
|
||||||
link_libraries( -flto -static-libstdc++ -static-libgcc -static -Wl,--whole-archive -lpthread -Wl,--no-whole-archive )
|
|
||||||
else()
|
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libstdc++ -static-libgcc -static -Wl,--whole-archive -lpthread -Wl,--no-whole-archive" )
|
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
link_libraries( -static-libstdc++ -static-libgcc )
|
link_libraries( -static-libstdc++ -static-libgcc )
|
||||||
|
|
|
@ -4,8 +4,10 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||||
add_compile_options(-Wno-unused-command-line-argument -Wno-c++11-narrowing)
|
add_compile_options(-Wno-unused-command-line-argument -Wno-c++11-narrowing)
|
||||||
add_compile_options($<$<COMPILE_LANGUAGE:C>:-Wno-bad-function-cast>)
|
add_compile_options($<$<COMPILE_LANGUAGE:C>:-Wno-bad-function-cast>)
|
||||||
if (NO_LIBGCC)
|
if (NO_LIBGCC)
|
||||||
set(CMAKE_CXX_STANDARD_LIBRARIES "-lunwind -lpsapi ${CMAKE_CXX_STANDARD_LIBRARIES}")
|
find_library(UNWIND_LIB unwind)
|
||||||
set(CMAKE_C_STANDARD_LIBRARIES "-lunwind -lpsapi ${CMAKE_C_STANDARD_LIBRARIES}")
|
link_libraries(${UNWIND_LIB})
|
||||||
|
find_library(PSAPI_LIB psapi)
|
||||||
|
link_libraries(${PSAPI_LIB})
|
||||||
endif(NO_LIBGCC)
|
endif(NO_LIBGCC)
|
||||||
else()
|
else()
|
||||||
# found it. this is GNU only
|
# found it. this is GNU only
|
||||||
|
|
|
@ -21,7 +21,9 @@ if(NOT MSVC_VERSION)
|
||||||
# GNU ld sees fit to merge *all* the .ident sections in object files
|
# GNU ld sees fit to merge *all* the .ident sections in object files
|
||||||
# to .r[o]data section one after the other!
|
# to .r[o]data section one after the other!
|
||||||
add_compile_options(-fno-ident -Wa,-mbig-obj)
|
add_compile_options(-fno-ident -Wa,-mbig-obj)
|
||||||
link_libraries( -lshlwapi -ldbghelp )
|
find_library(shlwapi_lib shlwapi)
|
||||||
|
find_library(dbghelp_lib dbghelp)
|
||||||
|
link_libraries( ${shlwapi_lib} ${dbghelp_lib} )
|
||||||
add_definitions(-DWINVER=0x0500 -D_WIN32_WINNT=0x0500)
|
add_definitions(-DWINVER=0x0500 -D_WIN32_WINNT=0x0500)
|
||||||
# Wait a minute, if we're not Microsoft C++, nor a Clang paired with Microsoft C++,
|
# Wait a minute, if we're not Microsoft C++, nor a Clang paired with Microsoft C++,
|
||||||
# then the only possible option has to be GNU or a GNU-linked Clang!
|
# then the only possible option has to be GNU or a GNU-linked Clang!
|
||||||
|
@ -33,7 +35,10 @@ endif()
|
||||||
get_filename_component(LIBTUNTAP_IMPL ${TT_ROOT}/tuntap-windows.c ABSOLUTE)
|
get_filename_component(LIBTUNTAP_IMPL ${TT_ROOT}/tuntap-windows.c ABSOLUTE)
|
||||||
get_filename_component(EV_SRC "llarp/ev/ev_win32.cpp" ABSOLUTE)
|
get_filename_component(EV_SRC "llarp/ev/ev_win32.cpp" ABSOLUTE)
|
||||||
add_definitions(-DWIN32_LEAN_AND_MEAN -DWIN32 -DWINVER=0x0500)
|
add_definitions(-DWIN32_LEAN_AND_MEAN -DWIN32 -DWINVER=0x0500)
|
||||||
set(EXE_LIBS ${STATIC_LIB} ${FS_LIB} ws2_32 iphlpapi)
|
|
||||||
|
find_library(ws2_32_lib ws2_32)
|
||||||
|
find_library(iphlpapi_lib iphlpapi)
|
||||||
|
set(EXE_LIBS ${STATIC_LIB} ${FS_LIB} ${ws2_32_lib} ${iphlpapi_lib})
|
||||||
|
|
||||||
if(RELEASE_MOTTO)
|
if(RELEASE_MOTTO)
|
||||||
add_definitions(-DLLARP_RELEASE_MOTTO="${RELEASE_MOTTO}")
|
add_definitions(-DLLARP_RELEASE_MOTTO="${RELEASE_MOTTO}")
|
||||||
|
|
|
@ -1,28 +1,16 @@
|
||||||
set(CMAKE_SYSTEM_NAME Windows)
|
set(CMAKE_SYSTEM_NAME Windows)
|
||||||
set(TOOLCHAIN_PREFIX x86_64-w64-mingw32)
|
set(TOOLCHAIN_PREFIX x86_64-w64-mingw32)
|
||||||
set(TOOLCHAIN_SUFFIX "")
|
set(TOOLCHAIN_SUFFIX "")
|
||||||
|
|
||||||
add_definitions("-DWINNT_CROSS_COMPILE")
|
|
||||||
|
|
||||||
# target environment on the build host system
|
|
||||||
# second one is for non-root installs
|
|
||||||
set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX} /usr/local/opt/mingw-w64/toolchain-x86_64/ /opt/mingw64 /home/$ENV{USER}/mingw32 /home/$ENV{USER}/mingw64 /home/$ENV{USER}/mingw64/${TOOLCHAIN_PREFIX} /home/$ENV{USER}/mingw32/${TOOLCHAIN_PREFIX})
|
|
||||||
|
|
||||||
# modify default behavior of FIND_XXX() commands
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|
||||||
|
|
||||||
# cross compilers to use
|
|
||||||
if($ENV{COMPILER} MATCHES "clang")
|
|
||||||
set(USING_CLANG ON)
|
|
||||||
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-clang)
|
|
||||||
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-clang++)
|
|
||||||
else()
|
|
||||||
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc${TOOLCHAIN_SUFFIX})
|
|
||||||
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++${TOOLCHAIN_SUFFIX})
|
|
||||||
add_compile_options("-Wa,-mbig-obj")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres)
|
|
||||||
set(WIN64_CROSS_COMPILE ON)
|
set(WIN64_CROSS_COMPILE ON)
|
||||||
|
|
||||||
|
set(TOOLCHAIN_PATHS
|
||||||
|
/usr/${TOOLCHAIN_PREFIX}
|
||||||
|
/usr/local/opt/mingw-w64/toolchain-x86_64
|
||||||
|
/usr/local/opt/mingw-w64/toolchain-x86_64/x86_64-w64-mingw32
|
||||||
|
/opt/mingw64
|
||||||
|
/home/$ENV{USER}/mingw32
|
||||||
|
/home/$ENV{USER}/mingw64
|
||||||
|
/home/$ENV{USER}/mingw64/${TOOLCHAIN_PREFIX}
|
||||||
|
/home/$ENV{USER}/mingw32/${TOOLCHAIN_PREFIX})
|
||||||
|
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/mingw_core.cmake")
|
||||||
|
|
|
@ -1,26 +1,15 @@
|
||||||
set(CMAKE_SYSTEM_NAME Windows)
|
set(CMAKE_SYSTEM_NAME Windows)
|
||||||
set(TOOLCHAIN_PREFIX i686-w64-mingw32)
|
set(TOOLCHAIN_PREFIX i686-w64-mingw32)
|
||||||
|
set(TOOLCHAIN_SUFFIX "")
|
||||||
add_definitions("-DWINNT_CROSS_COMPILE")
|
|
||||||
|
|
||||||
# target environment on the build host system
|
|
||||||
# second one is for non-root installs
|
|
||||||
set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX} /opt/mingw32 /home/$ENV{USER}/mingw32 /home/$ENV{USER}/mingw32/${TOOLCHAIN_PREFIX})
|
|
||||||
|
|
||||||
# modify default behavior of FIND_XXX() commands
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|
||||||
|
|
||||||
# cross compilers to use
|
|
||||||
if($ENV{COMPILER} MATCHES "clang")
|
|
||||||
set(USING_CLANG ON)
|
|
||||||
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-clang)
|
|
||||||
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-clang++)
|
|
||||||
else()
|
|
||||||
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
|
|
||||||
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres)
|
|
||||||
set(WOW64_CROSS_COMPILE ON)
|
set(WOW64_CROSS_COMPILE ON)
|
||||||
|
|
||||||
|
set(TOOLCHAIN_PATHS
|
||||||
|
/usr/${TOOLCHAIN_PREFIX}
|
||||||
|
/usr/local/opt/mingw-w64/toolchain-i686
|
||||||
|
/usr/local/opt/mingw-w64/toolchain-i686/i686-w64-mingw32
|
||||||
|
/opt/mingw32
|
||||||
|
/home/$ENV{USER}/mingw32
|
||||||
|
/home/$ENV{USER}/mingw32/${TOOLCHAIN_PREFIX}
|
||||||
|
)
|
||||||
|
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/mingw_core.cmake")
|
||||||
|
|
24
contrib/cross/mingw_core.cmake
Normal file
24
contrib/cross/mingw_core.cmake
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# target environment on the build host system
|
||||||
|
# second one is for non-root installs
|
||||||
|
set(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_PATHS})
|
||||||
|
|
||||||
|
add_definitions("-DWINNT_CROSS_COMPILE")
|
||||||
|
|
||||||
|
# modify default behavior of FIND_XXX() commands
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||||
|
|
||||||
|
# cross compilers to use
|
||||||
|
if($ENV{COMPILER} MATCHES "clang")
|
||||||
|
set(USING_CLANG ON)
|
||||||
|
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-clang)
|
||||||
|
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-clang++)
|
||||||
|
else()
|
||||||
|
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc${TOOLCHAIN_SUFFIX})
|
||||||
|
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++${TOOLCHAIN_SUFFIX})
|
||||||
|
add_compile_options("-Wa,-mbig-obj")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres)
|
Loading…
Reference in a new issue