diff --git a/src/sbbs3/CMakeLists.txt b/src/sbbs3/CMakeLists.txt index f066b7d3ccea07a17d51c135f27f0f01b957e3c1..5cc631a88c078cb2358f1e8615d72cdba96d9971 100644 --- a/src/sbbs3/CMakeLists.txt +++ b/src/sbbs3/CMakeLists.txt @@ -5,6 +5,15 @@ cmake_minimum_required(VERSION 2.8.11) INCLUDE (../build/SynchronetMacros.cmake) INCLUDE (CheckFunctionExists) +if(UNIX) + set(SBBS_USE_DOSEMU FALSE + CACHE BOOL "Set if you intend on using dosemu on Linux" + ) +endif() +set(SBBS_BUILD_JSDOCS FALSE + CACHE INTERNAL "DEVELOPER ONLY - Build only to run jsdocs.js (not a BBS)" +) + if(MSVC) set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS /wd4996) endif() @@ -16,17 +25,17 @@ if(EXISTS /dev/random) endif() if(NOT WIN32) - find_program(GNU_MAKE + find_program(3RDP_GNU_MAKE NAMES gmake make ) - if(NOT ${GNU_MAKE} STREQUAL "GNU_MAKE-NOTFOUND") + if(NOT ${3RDP_GNU_MAKE} STREQUAL "3RDP_GNU_MAKE-NOTFOUND") if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") set(BUILD_TYPE_FLAG DEBUG=1) else() set(BUILD_TYPE_FLAG RELEASE=1) endif() execute_process( - COMMAND ${GNU_MAKE} -C ${CMAKE_CURRENT_SOURCE_DIR}/../build --no-print-directory DONT_CLOBBER_CC=please ${BUILD_TYPE_FLAG} + 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 ) @@ -43,7 +52,7 @@ endif() if(NOT WIN32) add_custom_target(3rdp - ${GNU_MAKE} cryptlib libmozjs DONT_CLOBBER_CC=please ${BUILD_TYPE_FLAG} + ${3RDP_GNU_MAKE} cryptlib libmozjs DONT_CLOBBER_CC=please ${BUILD_TYPE_FLAG} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../../3rdp/build ) endif() @@ -157,14 +166,24 @@ set(SBBS_OBJS yenc ver ) +if(SBBS_BUILD_JSDOCS) + list(APPEND SBBS_OBJS js_uifc.c) +endif() add_library(sbbs SHARED ${SBBS_OBJS}) require_libs(sbbs xpdev smblib comio) +if(SBBS_BUILD_JSDOCS) + require_libs(sbbs uifc ciolib) + target_compile_definitions(sbbs PRIVATE BUILD_JSDOCS) +endif() +if(SBBS_USE_DOSEMU) + target_compile_definitions(sbbs PRIVATE USE_DOSEMU) +endif() target_compile_definitions(sbbs PUBLIC SBBS SBBS_EXPORTS JAVASCRIPT) get_filename_component(3RDP_DIR ../../3rdp ABSOLUTE) if(WIN32) - find_library(MOZJS_LIB mozjs PATHS ${3RDP_DIR}/win32.release/mozjs/bin NO_DEFAULT_PATH) - find_library(CRYPTLIB_LIB cl32 PATHS ${3RDP_DIR}/win32.release/cryptlib/bin NO_DEFAULT_PATH) + find_library(3RDP_MOZJS_LIB mozjs PATHS ${3RDP_DIR}/win32.release/mozjs/bin NO_DEFAULT_PATH) + find_library(3RDP_CRYPTLIB_LIB cl32 PATHS ${3RDP_DIR}/win32.release/cryptlib/bin NO_DEFAULT_PATH) target_include_directories(sbbs PUBLIC ${3RDP_DIR}/win32.release/mozjs/include) target_include_directories(sbbs PUBLIC ${3RDP_DIR}/win32.release/cryptlib/include) else() @@ -178,21 +197,21 @@ else() link_directories(${SUFFIX}) endif() if(${PREFIX} STREQUAL "-l") - find_library(NSPR_LIB ${SUFFIX} PATHS ${NSPR_LINK_DIR}) - target_link_libraries(sbbs ${NSPR_LIB}) + find_library(3RDP_NSPR_LIB ${SUFFIX} PATHS ${NSPR_LINK_DIR}) + target_link_libraries(sbbs ${3RDP_NSPR_LIB}) endif() endforeach() execute_process(COMMAND nspr-config --cflags OUTPUT_VARIABLE NSPR_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND nspr-config --includedir OUTPUT_VARIABLE NSPR_INCLUDE_DIR OUTPUT_STRIP_TRAILING_WHITESPACE) target_compile_options(sbbs PUBLIC ${NSPR_CFLAGS}) target_include_directories(sbbs PUBLIC ${NSPR_INCLUDE_DIR}) - find_library(MOZJS_LIB mozjs185-1.0 PATHS ${3RDP_DIR}/${LEGACY_3RDPDIR}/mozjs/lib NO_DEFAULT_PATH) - find_library(CRYPTLIB_LIB cl PATHS ${3RDP_DIR}/${LEGACY_3RDPDIR}/cl NO_DEFAULT_PATH) + find_library(3RDP_MOZJS_LIB mozjs185-1.0 PATHS ${3RDP_DIR}/${LEGACY_3RDPDIR}/mozjs/lib NO_DEFAULT_PATH) + find_library(3RDP_CRYPTLIB_LIB cl PATHS ${3RDP_DIR}/${LEGACY_3RDPDIR}/cl NO_DEFAULT_PATH) target_include_directories(sbbs PUBLIC ${3RDP_DIR}/${LEGACY_3RDPDIR}/mozjs/include/js) add_dependencies(sbbs 3rdp) endif() -target_link_libraries(sbbs ${MOZJS_LIB}) -target_link_libraries(sbbs ${CRYPTLIB_LIB}) +target_link_libraries(sbbs ${3RDP_MOZJS_LIB}) +target_link_libraries(sbbs ${3RDP_CRYPTLIB_LIB}) add_library(ftpsrvr SHARED ftpsrvr.c nopen.c) require_libs(ftpsrvr xpdev smblib comio)