2557dd7439
Internally LIBRESSL_SKIP_INSTALL, if not set becomes ENABLE_LIBRESSL_INSTALL so this by default is enabled. defining LIBRESSL_SKIP_INSTALL before hand will disable all install() rules. This is useful if another project includes and links to this statically. I chose to add a prefix to avoid potential name collision because the options are cached globally. If the installation is skipped, maybe it should also disable building apps? I didn't do that.
63 lines
1.2 KiB
CMake
63 lines
1.2 KiB
CMake
if(BUILD_NC)
|
|
|
|
include_directories(
|
|
.
|
|
./compat
|
|
../../include
|
|
../../include/compat
|
|
)
|
|
|
|
set(
|
|
NC_SRC
|
|
atomicio.c
|
|
netcat.c
|
|
socks.c
|
|
compat/socket.c
|
|
)
|
|
|
|
check_function_exists(b64_ntop HAVE_B64_NTOP)
|
|
if(HAVE_B64_NTOP)
|
|
add_definitions(-DHAVE_B64_NTOP)
|
|
else()
|
|
set(NC_SRC ${NC_SRC} compat/base64.c)
|
|
endif()
|
|
|
|
check_function_exists(accept4 HAVE_ACCEPT4)
|
|
if(HAVE_ACCEPT4)
|
|
add_definitions(-DHAVE_ACCEPT4)
|
|
else()
|
|
set(NC_SRC ${NC_SRC} compat/accept4.c)
|
|
endif()
|
|
|
|
check_function_exists(readpassphrase HAVE_READPASSPHRASE)
|
|
if(HAVE_READPASSPHRASE)
|
|
add_definitions(-DHAVE_READPASSPHRASE)
|
|
else()
|
|
set(NC_SRC ${NC_SRC} compat/readpassphrase.c)
|
|
endif()
|
|
|
|
check_function_exists(strtonum HAVE_STRTONUM)
|
|
if(HAVE_STRTONUM)
|
|
add_definitions(-DHAVE_STRTONUM)
|
|
else()
|
|
set(NC_SRC ${NC_SRC} compat/strtonum.c)
|
|
endif()
|
|
|
|
if(NOT "${OPENSSLDIR}" STREQUAL "")
|
|
add_definitions(-DDEFAULT_CA_FILE=\"${OPENSSLDIR}/cert.pem\")
|
|
else()
|
|
add_definitions(-DDEFAULT_CA_FILE=\"${CMAKE_INSTALL_PREFIX}/etc/ssl/cert.pem\")
|
|
endif()
|
|
|
|
add_executable(nc ${NC_SRC})
|
|
target_link_libraries(nc tls ${OPENSSL_LIBS})
|
|
|
|
if(ENABLE_NC)
|
|
if(ENABLE_LIBRESSL_INSTALL)
|
|
install(TARGETS nc DESTINATION bin)
|
|
install(FILES nc.1 DESTINATION share/man/man1)
|
|
endif(ENABLE_LIBRESSL_INSTALL)
|
|
endif()
|
|
|
|
endif()
|