diff --git a/src/comio/CMakeLists.txt b/src/comio/CMakeLists.txt index 4e7ea49dd28b90b054bb0b539970ba88a783b988..5212bed571b4d1d9b4ab6b898f551c608e7090cb 100644 --- a/src/comio/CMakeLists.txt +++ b/src/comio/CMakeLists.txt @@ -1,33 +1,25 @@ project (COMIO C) -cmake_minimum_required(VERSION 2.8.11) - -INCLUDE(../build/SynchronetMacros.cmake) +cmake_minimum_required(VERSION 3.11) set(SOURCE comio.c ) + +set(HEADER + comio.h +) + if(WIN32) list(APPEND SOURCE comio_win32.c) else() list(APPEND SOURCE comio_nix.c) - if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - target_compile_definitions(comio PRIVATE SPEED_MACROS_ONLY) - endif() endif() -add_library(comio SHARED ${SOURCE}) -set_target_properties(comio PROPERTIES POSITION_INDEPENDENT_CODE TRUE) -require_lib(comio xpdev) -target_compile_definitions(comio PRIVATE COMIO_EXPORTS) -target_compile_definitions(comio INTERFACE COMIO_IMPORTS) - -set(INSTALL_HEADERS - comio.h -) - -export(PACKAGE COMIO) +add_library(comio OBJECT ${SOURCE}) +if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + target_compile_definitions(comio PRIVATE SPEED_MACROS_ONLY) +endif() +target_include_directories(comio PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -install(TARGETS comio DESTINATION lib EXPORT COMIOConfig) -install(FILES ${INSTALL_HEADERS} DESTINATION include) -install(EXPORT COMIOConfig DESTINATION lib/cmake/COMIO) +target_link_libraries(comio xpdev) diff --git a/src/encode/CMakeLists.txt b/src/encode/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..2e2be23da93a1f2c78be5f9b9d7147116f44e3a6 --- /dev/null +++ b/src/encode/CMakeLists.txt @@ -0,0 +1,27 @@ +# not currently used + +project (Encode C) + +cmake_minimum_required(VERSION 3.11) + +set(SOURCE + base64.c + hex.c + lzh.c + utf8.c + uucode.c + yenc.c +) + +set(HEADER + base64.h + lzh.h + utf8.h + uucode.h + yenc.h +) + +add_library(encode OBJECT ${SOURCE}) +target_compile_features(encode PUBLIC c_std_99) +target_include_directories(encode PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(encode xpdev) diff --git a/src/hash/CMakeLists.txt b/src/hash/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..8303fff3fb04ad249a531450efb9e3cfb2279c94 --- /dev/null +++ b/src/hash/CMakeLists.txt @@ -0,0 +1,22 @@ +project (Hash C) +find_package(XPDev QUIET CONFIG PATHS lib/cmake/XPDev) + +cmake_minimum_required(VERSION 3.11) + +set(SOURCE + crc16.c + crc32.c + md5.c + sha1.c +) + +set(HEADER + crc16.h + crc32.h + md5.h + sha1.h +) + +add_library(hash OBJECT ${SOURCE}) +target_include_directories(hash PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(hash xpdev) diff --git a/src/uifc/CMakeLists.txt b/src/uifc/CMakeLists.txt index 12f53e7e28524e074e72add585a4f347454bd5f4..a6ddccd7fd77e701aa3811e1a2162d7f59f445a0 100644 --- a/src/uifc/CMakeLists.txt +++ b/src/uifc/CMakeLists.txt @@ -1,22 +1,21 @@ project (UIfC C) -cmake_minimum_required(VERSION 2.8.11) +cmake_minimum_required(VERSION 3.11) -INCLUDE (../build/SynchronetMacros.cmake) INCLUDE (FindThreads) set(SOURCE + filepick.c uifc32.c uifcx.c ) -add_library(uifc SHARED ${SOURCE}) -require_libs(uifc xpdev ciolib) -target_compile_definitions(uifc PRIVATE UIFC_EXPORTS) -target_compile_definitions(uifc INTERFACE UIFC_IMPORTS) +set(HEADER + filepick.h + uifc.h +) -export(PACKAGE UIFC) +add_library(uifc OBJECT ${SOURCE}) +target_include_directories(uifc PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -install(TARGETS uifc DESTINATION lib EXPORT UIFCConfig) -install(FILES uifc.h DESTINATION include) -install(EXPORT UIFCConfig DESTINATION lib/cmake/UIFC) +target_link_libraries(uifc ciolib xpdev) diff --git a/src/xpdev/CMakeLists.txt b/src/xpdev/CMakeLists.txt index 78eaa0c941c2076b475c85864a9e5bd4aabb81ef..cb753fd6786b203c976dc0ef1b1475c33961e8d1 100644 --- a/src/xpdev/CMakeLists.txt +++ b/src/xpdev/CMakeLists.txt @@ -1,13 +1,15 @@ project (XPDev C) -cmake_minimum_required(VERSION 2.8.11) +cmake_minimum_required(VERSION 3.11) INCLUDE (CheckIncludeFiles) INCLUDE (CheckFunctionExists) -INCLUDE (FindThreads) -INCLUDE (FindSDL) -INCLUDE (FindX11) -INCLUDE (FindPkgConfig) +find_package(Threads) +find_package(X11) +if(NOT WIN32) + find_package(PkgConfig) + pkg_check_modules(SDL2 sdl2) +endif() set(SOURCE conwrap.c @@ -20,18 +22,57 @@ set(SOURCE link_list.c msg_queue.c multisock.c - semwrap.c netwrap.c - sockwrap.c semfile.c + semwrap.c + sockwrap.c str_list.c strwrap.c threadwrap.c + unicode.c xp_dl.c xpbeep.c xpdatetime.c xpmap.c xpprintf.c + xptime.c +) + +set(HEADER + conwrap.h + cp437defs.h + dat_file.h + datewrap.h + dirwrap.h + eventwrap.h + filewrap.h + gen_defs.h + genwrap.h + haproxy.h + ini_file.h + link_list.h + msg_queue.h + multisock.h + netwrap.h + petdefs.h + semfile.h + semwrap.h + sockwrap.h + str_list.h + strwrap.h + threadwrap.h + unicode_defs.h + unicode.h + wrapdll.h + xp_dl.h + xp_syslog.h + xpbeep.h + xpdatetime.h + xpendian.h + xpevent.h + xpmap.h + xpprintf.h + xpsem.h ) if(NOT WIN32) @@ -39,7 +80,7 @@ if(NOT WIN32) list(APPEND SOURCE xpsem.c) endif() -if(SDL_FOUND) +if(SDL2_INCLUDE_DIRS) list(APPEND SOURCE sdlfuncs.c) if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") list(APPEND SOURCE SDLMain.m) @@ -49,19 +90,14 @@ if(SDL_FOUND) endif() endif() -add_library(xpdev SHARED ${SOURCE}) - +add_library(xpdev OBJECT ${SOURCE}) +target_include_directories(xpdev PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +target_include_directories(xpdev PUBLIC ${XPDevPlus_BINARY_DIR}) target_link_libraries(xpdev ${CMAKE_DL_LIBS}) CHECK_INCLUDE_FILES(inttypes.h HAS_INTTYPES_H) -if(HAS_INTTYPES_H) - target_compile_definitions(xpdev PUBLIC HAS_INTTYPES_H) -endif() CHECK_INCLUDE_FILES(stdint.h HAS_STDINT_H) -if(HAS_STDINT_H) - target_compile_definitions(xpdev PUBLIC HAS_STDINT_H) -endif() -target_compile_definitions(xpdev PUBLIC LINK_LIST_THREADSAFE) +set(LINK_LIST_THREADSAFE TRUE PARENT_SCOPE) CHECK_INCLUDE_FILES(sys/soundcard.h HAS_SYS_SOUNDCARD_H) CHECK_INCLUDE_FILES(soundcard.h HAS_SOUNDCARD_H) @@ -87,10 +123,9 @@ if(HAS_DEV_MACHINE_SPKR_H) target_compile_definitions(xpdev PRIVATE HAS_DEV_MACHINE_SPKR_H) endif() -target_compile_definitions(xpdev PRIVATE WRAPPER_EXPORTS) -target_compile_definitions(xpdev INTERFACE WRAPPER_IMPORTS) if(WIN32) - target_link_libraries(xpdev Iphlpapi Ws2_32 Winmm Netapi32) + target_compile_definitions(xpdev PUBLIC _WIN32 _WIN32_WINNT=0x0501 WINVER=0x0501 MSVCRT_VERSION=0x0501 _WIN32_IE=0x0500) + target_link_libraries(xpdev iphlpapi ws2_32 winmm netapi32) elseif(CMAKE_SYSTEM_NAME STREQUAL "Haiku") target_link_libraries(xpdev network m) elseif(CMAKE_SYSTEM_NAME STREQUAL "NetBSD") @@ -121,24 +156,26 @@ if(HAS_SRANDOMDEV_FUNC) target_compile_definitions(xpdev PRIVATE HAS_SRANDOMDEV_FUNC) endif() -if(SDL_FOUND) - target_include_directories(xpdev PUBLIC ${SDL_INCLUDE_DIR}) - target_compile_definitions(xpdev PUBLIC WITH_SDL_AUDIO) +if(SDL2_INCLUDE_DIRS) + target_include_directories(xpdev PUBLIC ${SDL2_INCLUDE_DIRS}) + set(WITH_SDL_AUDIO TRUE PARENT_SCOPE) endif() if(X11_FOUND) - target_include_directories(xpdev PRIVATE X11_INCLUDE_DIR) + target_include_directories(xpdev PRIVATE ${X11_INCLUDE_DIR}) endif() -pkg_check_modules(PORTAUDIO2 portaudio-2.0) -if(PORTAUDIO2_FOUND) - set(PORTAUDIO_FOUND TRUE) - set(PORTAUDIO_LIBS PORTAUDIO2_LIBS) - set(PORTAUDIO_CFLAGS PORTAUDIO2_CFLAGS) -else() - find_path(PORTAUDIO_INCLUDEDIR portaudio.h) - if(PORTAUDIO_INCLUDEDIR) +if (PKG_CONFIG_FOUND) + pkg_check_modules(PORTAUDIO2 portaudio-2.0) + if(PORTAUDIO2_FOUND) set(PORTAUDIO_FOUND TRUE) + set(PORTAUDIO_LIBS PORTAUDIO2_LIBS) + set(PORTAUDIO_CFLAGS PORTAUDIO2_CFLAGS) + else() + find_path(PORTAUDIO_INCLUDEDIR portaudio.h) + if(PORTAUDIO_INCLUDEDIR) + set(PORTAUDIO_FOUND TRUE) + endif() endif() endif() @@ -150,45 +187,3 @@ CHECK_INCLUDE_FILES(alsa/asoundlib.h USE_ALSA_SOUND) if(USE_ALSA_SOUND) target_compile_definitions(xpdev PRIVATE USE_ALSA_SOUND) endif() - -set(INSTALL_HEADERS - conwrap.h - dat_file.h - datewrap.h - dirwrap.h - eventwrap.h - filewrap.h - gen_defs.h - genwrap.h - ini_file.h - link_list.h - msg_queue.h - multisock.h - netwrap.h - semfile.h - semwrap.h - sockwrap.h - str_list.h - strwrap.h - threadwrap.h - wrapdll.h - xp_dl.h - xp_syslog.h - xpbeep.h - xpdatetime.h - xpendian.h - xpmap.h - xpprintf.h -) -if(NOT WIN32) - list(APPEND INSTALL_HEADERS xpevent.h) - list(APPEND INSTALL_HEADERS xpsem.h) -endif() -target_include_directories(xpdev INTERFACE $<INSTALL_INTERFACE:include/xpdev>) - -export(PACKAGE XPDev) - -install(TARGETS xpdev DESTINATION lib EXPORT XPDevConfig) -install(FILES ${INSTALL_HEADERS} DESTINATION include/xpdev) -install(EXPORT XPDevConfig DESTINATION lib/cmake/XPDev) -