1
1
Fork 0
mirror of https://github.com/oxen-io/lokinet synced 2023-12-14 06:53:00 +01:00
lokinet/cmake/win32.cmake

47 lines
1.8 KiB
CMake
Raw Normal View History

2019-07-22 01:39:56 +02:00
if(NOT WIN32)
return()
endif()
enable_language(RC)
2019-07-21 18:05:51 +02:00
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
2019-07-29 01:31:07 +02:00
if (MSVC OR MSVC_VERSION)
2019-07-23 00:20:17 +02:00
add_compile_options(/EHca /arch:AVX2 /MD)
add_definitions(-D_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING)
2019-07-31 01:42:13 +02:00
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" AND "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
add_compile_options(-Wno-nonportable-system-include-path)
endif()
2019-07-29 01:31:07 +02:00
endif()
if(NOT MSVC_VERSION)
add_compile_options($<$<COMPILE_LANGUAGE:C>:-Wno-bad-function-cast>)
add_compile_options($<$<COMPILE_LANGUAGE:C>:-Wno-cast-function-type>)
# unlike unix where you get a *single* compiler ID string in .comment
# GNU ld sees fit to merge *all* the .ident sections in object files
# to .r[o]data section one after the other!
2019-07-29 01:31:07 +02:00
add_compile_options(-fno-ident -Wa,-mbig-obj)
2019-08-15 00:40:17 +02:00
link_libraries( -lshlwapi -ldbghelp )
2019-07-25 02:46:41 +02:00
add_definitions(-DWINVER=0x0500 -D_WIN32_WINNT=0x0500)
2019-08-02 05:53:22 +02:00
# 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!
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 9.0 OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(FS_LIB stdc++fs)
2019-07-25 02:46:41 +02:00
endif()
endif()
get_filename_component(LIBTUNTAP_IMPL ${TT_ROOT}/tuntap-windows.c ABSOLUTE)
get_filename_component(EV_SRC "llarp/ev/ev_win32.cpp" ABSOLUTE)
add_definitions(-DWIN32_LEAN_AND_MEAN -DWIN32 -DWINVER=0x0500)
2019-08-15 00:40:17 +02:00
set(EXE_LIBS ${STATIC_LIB} ${FS_LIB} ws2_32 iphlpapi)
if(RELEASE_MOTTO)
add_definitions(-DLLARP_RELEASE_MOTTO="${RELEASE_MOTTO}")
add_definitions(-DRELEASE_MOTTO=${RELEASE_MOTTO})
endif()
if (NOT STATIC_LINK_RUNTIME AND NOT MSVC)
message("must ship compiler runtime libraries with this build: libwinpthread-1.dll, libgcc_s_dw2-1.dll, and libstdc++-6.dll")
message("for release builds, turn on STATIC_LINK_RUNTIME in cmake options")
endif()