Skip to content
Snippets Groups Projects
Commit 5fd05b73 authored by Deucе's avatar Deucе :ok_hand_tone4:
Browse files

Fix CMake system for SyncTERM

parent d8e04cb6
No related branches found
No related tags found
No related merge requests found
Pipeline #6754 passed
...@@ -13,6 +13,9 @@ if(NOT WIN32) ...@@ -13,6 +13,9 @@ if(NOT WIN32)
find_package(Curses) find_package(Curses)
find_package(PkgConfig) find_package(PkgConfig)
pkg_check_modules(SDL2 sdl2) pkg_check_modules(SDL2 sdl2)
pkg_check_modules(XRENDER xrender)
pkg_check_modules(XINERAMA xinerama)
pkg_check_modules(XRANDR xrandr)
endif() endif()
set(SOURCE set(SOURCE
...@@ -95,6 +98,15 @@ endif() ...@@ -95,6 +98,15 @@ endif()
if(X11_FOUND) if(X11_FOUND)
target_include_directories(ciolib PRIVATE ${X11_INCLUDE_DIR}) target_include_directories(ciolib PRIVATE ${X11_INCLUDE_DIR})
if(XRENDER_FOUND)
target_compile_definitions(ciolib PUBLIC WITH_XRENDER)
endif()
if(XINERAMA_FOUND)
target_compile_definitions(ciolib PUBLIC WITH_XINERAMA)
endif()
if(XRANDR_FOUND)
target_compile_definitions(ciolib PUBLIC WITH_XRANDR)
endif()
else() else()
target_compile_definitions(ciolib PRIVATE NO_X) target_compile_definitions(ciolib PRIVATE NO_X)
endif() endif()
......
cmake_minimum_required(VERSION 3.5)
project (SyncTERM C) project (SyncTERM C)
cmake_minimum_required(VERSION 2.8.11)
# CPack stuff... # CPack stuff...
set(CPACK_PACKAGE_NAME SyncTERM) set(CPACK_PACKAGE_NAME SyncTERM)
set(CPACK_PACKAGE_VENDOR Deuce) set(CPACK_PACKAGE_VENDOR Deuce)
...@@ -23,61 +22,82 @@ INCLUDE(CPack) ...@@ -23,61 +22,82 @@ INCLUDE(CPack)
INCLUDE (../build/SynchronetMacros.cmake) INCLUDE (../build/SynchronetMacros.cmake)
INCLUDE (CheckIncludeFiles) INCLUDE (CheckIncludeFiles)
set(SOURCE
uifc32.c
uifcx.c
)
set(SOURCE set(SOURCE
bbslist.c bbslist.c
uifcinit.c conn.c
../uifc/filepick.c conn_pty.c
conn_telnet.c
fonts.c fonts.c
menu.c
modem.c
ooii.c
ooii_bmenus.c
ooii_cmenus.c
ooii_logons.c
ooii_sounds.c
ripper.c
rlogin.c rlogin.c
ssh.c
syncterm.c
telnet_io.c telnet_io.c
conn_telnet.c telnets.c
conn.c
../sbbs3/telnet.c
term.c term.c
uifcinit.c
window.c window.c
menu.c ../sbbs3/telnet.c
../smblib/crc16.c
../smblib/crc32.c
../sbbs3/zmodem.c ../sbbs3/zmodem.c
../sbbs3/xmodem.c ../sbbs3/xmodem.c
syncterm.c
ooii.c
ooii_logons.c
ooii_cmenus.c
ooii_bmenus.c
ooii_sounds.c
modem.c
conn_pty.c
) )
if(WIN32) if(NOT WIN32)
list(APPEND CMAKE_REQUIRED_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/../../3rdp/win32.release/cryptlib/include) find_program(3RDP_GNU_MAKE
NAMES gmake make
)
if(${3RDP_GNU_MAKE} STREQUAL "3RDP_GNU_MAKE-NOTFOUND")
set(WITHOUT_CRYPTLIB 1)
else()
if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
set(BUILD_TYPE_FLAG DEBUG=1)
else()
set(BUILD_TYPE_FLAG RELEASE=1)
endif()
execute_process(
COMMAND ${3RDP_GNU_MAKE} -C ${CMAKE_CURRENT_SOURCE_DIR}/../build --no-print-directory DONT_CLOBBER_CC=please ${BUILD_TYPE_FLAG}
OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/paths.txt
ERROR_FILE ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/paths.err
)
file(STRINGS ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/paths.txt PATHS)
list(GET PATHS 0 LEGACY_LIBDIR)
list(GET PATHS 1 LEGACY_OBJDIR)
list(GET PATHS 2 LEGACY_MTOBJBDIR)
list(GET PATHS 3 LEGACY_EXEDIR)
list(GET PATHS 4 LEGACY_3RDPDIR)
add_custom_target(cryptlib
${3RDP_GNU_MAKE} cryptlib DONT_CLOBBER_CC=please ${BUILD_TYPE_FLAG}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../../3rdp/build
)
endif() endif()
CHECK_INCLUDE_FILES(cryptlib.h HAS_CRYPTLIB_H)
if(HAS_CRYPTLIB_H)
list(APPEND SOURCE ssh.c)
endif() endif()
add_executable(syncterm ${SOURCE}) add_executable(syncterm ${SOURCE})
require_libs(syncterm xpdev ciolib uifc comio) require_libs(syncterm ciolib comio encode hash sftp uifc xpdev)
if(WITHOUT_CRYPTLIB)
target_include_directories(syncterm PRIVATE ../sbbs3)
target_include_directories(syncterm PRIVATE ../smblib)
if(NOT HAS_CRYPTLIB_H)
target_compile_definitions(syncterm PRIVATE WITHOUT_CRYPTLIB) target_compile_definitions(syncterm PRIVATE WITHOUT_CRYPTLIB)
else() else()
if(WIN32) if(WIN32)
find_library(3RDP_CRYPTLIB_LIB cl32 PATHS ${CMAKE_CURRENT_LIST_DIR}/../../3rdp/win32.release/cryptlib/bin NO_DEFAULT_PATH)
target_include_directories(syncterm PRIVATE ${CMAKE_CURRENT_LIST_DIR}/../../3rdp/win32.release/cryptlib/include) target_include_directories(syncterm PRIVATE ${CMAKE_CURRENT_LIST_DIR}/../../3rdp/win32.release/cryptlib/include)
target_link_libraries(syncterm ${3RDP_CRYPTLIB_LIB})
else()
add_dependencies(syncterm cryptlib)
target_include_directories(syncterm PRIVATE ${CMAKE_CURRENT_LIST_DIR}/../../3rdp/${LEGACY_3RDPDIR}/cl)
target_link_directories(syncterm PRIVATE ${CMAKE_CURRENT_LIST_DIR}/../../3rdp/${LEGACY_3RDPDIR}/cl)
target_link_libraries(syncterm cl)
endif() endif()
endif() endif()
target_include_directories(syncterm PRIVATE ../sbbs3)
if(CMAKE_SYSTEM_NAME STREQUAL "NetBSD") if(CMAKE_SYSTEM_NAME STREQUAL "NetBSD")
target_link_libraries(syncterm util) target_link_libraries(syncterm util)
elseif(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") elseif(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
......
...@@ -9,6 +9,8 @@ find_package(X11) ...@@ -9,6 +9,8 @@ find_package(X11)
if(NOT WIN32) if(NOT WIN32)
find_package(PkgConfig) find_package(PkgConfig)
pkg_check_modules(SDL2 sdl2) pkg_check_modules(SDL2 sdl2)
pkg_check_modules(PULSEAUDIO libpulse-simple)
pkg_check_modules(ALSA alsa)
endif() endif()
set(SOURCE set(SOURCE
...@@ -96,17 +98,23 @@ target_link_libraries(xpdev ${CMAKE_DL_LIBS}) ...@@ -96,17 +98,23 @@ target_link_libraries(xpdev ${CMAKE_DL_LIBS})
CHECK_INCLUDE_FILES(inttypes.h HAS_INTTYPES_H) CHECK_INCLUDE_FILES(inttypes.h HAS_INTTYPES_H)
CHECK_INCLUDE_FILES(stdint.h HAS_STDINT_H) CHECK_INCLUDE_FILES(stdint.h HAS_STDINT_H)
set(LINK_LIST_THREADSAFE TRUE PARENT_SCOPE) target_compile_definitions(xpdev PUBLIC LINK_LIST_THREADSAFE)
if(HAS_INTTYPES_H)
target_compile_definitions(xpdev PUBLIC HAS_INTTYPES_H)
endif()
if(HAS_STDINT_H)
target_compile_definitions(xpdev PUBLIC HAS_STDINT_H)
endif()
CHECK_INCLUDE_FILES(sys/soundcard.h HAS_SYS_SOUNDCARD_H) CHECK_INCLUDE_FILES(sys/soundcard.h HAS_SYS_SOUNDCARD_H)
CHECK_INCLUDE_FILES(soundcard.h HAS_SOUNDCARD_H) CHECK_INCLUDE_FILES(soundcard.h HAS_SOUNDCARD_H)
CHECK_INCLUDE_FILES(linux/inttypes.h HAS_LINUX_SOUNDCARD_H) CHECK_INCLUDE_FILES(linux/inttypes.h HAS_LINUX_SOUNDCARD_H)
if(HAS_SYS_SOUNDCARD_H) if(HAS_SYS_SOUNDCARD_H)
target_compile_definitions(xpdev PRIVATE SOUNDCARD_H_IN=1) target_compile_definitions(xpdev PUBLIC SOUNDCARD_H_IN=1)
elseif(HAS_SOUNDCARD_H) elseif(HAS_SOUNDCARD_H)
target_compile_definitions(xpdev PRIVATE SOUNDCARD_H_IN=2) target_compile_definitions(xpdev PUBLIC SOUNDCARD_H_IN=2)
elseif(HAS_LINUX_SOUNDCARD_H) elseif(HAS_LINUX_SOUNDCARD_H)
target_compile_definitions(xpdev PRIVATE SOUNDCARD_H_IN=3) target_compile_definitions(xpdev PUBLIC SOUNDCARD_H_IN=3)
endif() endif()
CHECK_INCLUDE_FILES(dev/speaker/speaker.h HAS_DEV_SPEAKER_SPEAKER_H) CHECK_INCLUDE_FILES(dev/speaker/speaker.h HAS_DEV_SPEAKER_SPEAKER_H)
...@@ -162,6 +170,7 @@ endif() ...@@ -162,6 +170,7 @@ endif()
if(SDL2_INCLUDE_DIRS) if(SDL2_INCLUDE_DIRS)
target_include_directories(xpdev PUBLIC ${SDL2_INCLUDE_DIRS}) target_include_directories(xpdev PUBLIC ${SDL2_INCLUDE_DIRS})
set(WITH_SDL_AUDIO TRUE PARENT_SCOPE) set(WITH_SDL_AUDIO TRUE PARENT_SCOPE)
target_compile_definitions(xpdev PUBLIC WITH_SDL_AUDIO)
endif() endif()
if(X11_FOUND) if(X11_FOUND)
...@@ -184,9 +193,20 @@ endif() ...@@ -184,9 +193,20 @@ endif()
if(PORTAUDIO_FOUND) if(PORTAUDIO_FOUND)
target_include_directories(xpdev PRIVATE ${PORTAUDIO_INCLUDEDIR}) target_include_directories(xpdev PRIVATE ${PORTAUDIO_INCLUDEDIR})
target_compile_definitions(xpdev PUBLIC WITH_PORTAUDIO)
endif()
if(PULSEAUDIO_FOUND)
target_include_directories(xpdev PUBLIC ${PULSEAUDIO_INCLUDE_DIRS})
target_compile_definitions(xpdev PUBLIC WITH_PULSEAUDIO)
endif() endif()
if(ALSA_FOUND)
target_include_directories(xpdev PUBLIC ${ALSA_INCLUDE_DIRS})
target_compile_definitions(xpdev PUBLIC USE_ALSA_SOUND)
else()
CHECK_INCLUDE_FILES(alsa/asoundlib.h USE_ALSA_SOUND) CHECK_INCLUDE_FILES(alsa/asoundlib.h USE_ALSA_SOUND)
if(USE_ALSA_SOUND) if(USE_ALSA_SOUND)
target_compile_definitions(xpdev PRIVATE USE_ALSA_SOUND) target_compile_definitions(xpdev PUBLIC USE_ALSA_SOUND)
endif()
endif() endif()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment