diff --git a/src/conio/CMakeLists.txt b/src/conio/CMakeLists.txt index 86a92cac004216802d06654af2572abacb83b8ba..e3fcefcdc12ea75fd2f951ee317d47a878dda47a 100644 --- a/src/conio/CMakeLists.txt +++ b/src/conio/CMakeLists.txt @@ -13,6 +13,9 @@ if(NOT WIN32) find_package(Curses) find_package(PkgConfig) pkg_check_modules(SDL2 sdl2) + pkg_check_modules(XRENDER xrender) + pkg_check_modules(XINERAMA xinerama) + pkg_check_modules(XRANDR xrandr) endif() set(SOURCE @@ -95,6 +98,15 @@ endif() if(X11_FOUND) 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() target_compile_definitions(ciolib PRIVATE NO_X) endif() diff --git a/src/syncterm/CMakeLists.txt b/src/syncterm/CMakeLists.txt index 62cddfb281d6e8744d8e88ae133518d3561602e0..17711321e2c834ca4c65dc9e08777ad587406c52 100644 --- a/src/syncterm/CMakeLists.txt +++ b/src/syncterm/CMakeLists.txt @@ -1,7 +1,6 @@ +cmake_minimum_required(VERSION 3.5) project (SyncTERM C) -cmake_minimum_required(VERSION 2.8.11) - # CPack stuff... set(CPACK_PACKAGE_NAME SyncTERM) set(CPACK_PACKAGE_VENDOR Deuce) @@ -23,61 +22,82 @@ INCLUDE(CPack) INCLUDE (../build/SynchronetMacros.cmake) INCLUDE (CheckIncludeFiles) -set(SOURCE - uifc32.c - uifcx.c -) - set(SOURCE bbslist.c - uifcinit.c - ../uifc/filepick.c + conn.c + conn_pty.c + conn_telnet.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 + ssh.c + syncterm.c telnet_io.c - conn_telnet.c - conn.c - ../sbbs3/telnet.c + telnets.c term.c + uifcinit.c window.c - menu.c - ../smblib/crc16.c - ../smblib/crc32.c + ../sbbs3/telnet.c ../sbbs3/zmodem.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) - list(APPEND CMAKE_REQUIRED_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/../../3rdp/win32.release/cryptlib/include) -endif() - -CHECK_INCLUDE_FILES(cryptlib.h HAS_CRYPTLIB_H) -if(HAS_CRYPTLIB_H) - list(APPEND SOURCE ssh.c) +if(NOT WIN32) + 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() add_executable(syncterm ${SOURCE}) -require_libs(syncterm xpdev ciolib uifc comio) - -target_include_directories(syncterm PRIVATE ../sbbs3) -target_include_directories(syncterm PRIVATE ../smblib) - -if(NOT HAS_CRYPTLIB_H) - target_compile_definitions(syncterm PRIVATE WITHOUT_CRYPTLIB) +require_libs(syncterm ciolib comio encode hash sftp uifc xpdev) +if(WITHOUT_CRYPTLIB) + target_compile_definitions(syncterm PRIVATE WITHOUT_CRYPTLIB) else() 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_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() +target_include_directories(syncterm PRIVATE ../sbbs3) + if(CMAKE_SYSTEM_NAME STREQUAL "NetBSD") target_link_libraries(syncterm util) elseif(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") @@ -91,5 +111,5 @@ endif() install(TARGETS syncterm DESTINATION bin) if(UNIX) install(FILES syncterm.desktop DESTINATION share/applications) - install(FILES syncterm.png DESTINATION share/icons/hicolor/64x64/apps) + install(FILES syncterm.png DESTINATION share/icons/hicolor/64x64/apps) endif() diff --git a/src/xpdev/CMakeLists.txt b/src/xpdev/CMakeLists.txt index db65a0d93bc40bfdfad538168259e471c479c77a..c1aca0bc167b9b8d9a91be256eec17d88848aba5 100644 --- a/src/xpdev/CMakeLists.txt +++ b/src/xpdev/CMakeLists.txt @@ -9,6 +9,8 @@ find_package(X11) if(NOT WIN32) find_package(PkgConfig) pkg_check_modules(SDL2 sdl2) + pkg_check_modules(PULSEAUDIO libpulse-simple) + pkg_check_modules(ALSA alsa) endif() set(SOURCE @@ -96,17 +98,23 @@ target_link_libraries(xpdev ${CMAKE_DL_LIBS}) CHECK_INCLUDE_FILES(inttypes.h HAS_INTTYPES_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(soundcard.h HAS_SOUNDCARD_H) CHECK_INCLUDE_FILES(linux/inttypes.h HAS_LINUX_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) - target_compile_definitions(xpdev PRIVATE SOUNDCARD_H_IN=2) + target_compile_definitions(xpdev PUBLIC SOUNDCARD_H_IN=2) elseif(HAS_LINUX_SOUNDCARD_H) - target_compile_definitions(xpdev PRIVATE SOUNDCARD_H_IN=3) + target_compile_definitions(xpdev PUBLIC SOUNDCARD_H_IN=3) endif() CHECK_INCLUDE_FILES(dev/speaker/speaker.h HAS_DEV_SPEAKER_SPEAKER_H) @@ -162,6 +170,7 @@ endif() if(SDL2_INCLUDE_DIRS) target_include_directories(xpdev PUBLIC ${SDL2_INCLUDE_DIRS}) set(WITH_SDL_AUDIO TRUE PARENT_SCOPE) + target_compile_definitions(xpdev PUBLIC WITH_SDL_AUDIO) endif() if(X11_FOUND) @@ -184,9 +193,20 @@ endif() if(PORTAUDIO_FOUND) 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() -CHECK_INCLUDE_FILES(alsa/asoundlib.h USE_ALSA_SOUND) -if(USE_ALSA_SOUND) - target_compile_definitions(xpdev PRIVATE USE_ALSA_SOUND) +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) + if(USE_ALSA_SOUND) + target_compile_definitions(xpdev PUBLIC USE_ALSA_SOUND) + endif() endif()