Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 17 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,35 +47,43 @@ elseif(PDC_DOSVT_BUILD) # currently requires a unique toolchain file
elseif(PDC_OS2_BUILD) # currently requires a unique toolchain file

add_subdirectory(os2)

else()

add_subdirectory(ncurses)

if(PDC_SDL2_BUILD)

add_subdirectory(sdl2)

endif()

if(PDC_GL_BUILD)

add_subdirectory(gl)

endif()

if(UNIX)
add_subdirectory(vt)
endif()

if(WIN32)

add_subdirectory(wincon)
add_subdirectory(wingui)
add_subdirectory(vt)


endif()

if(PDC_X11_BUILD)

# set(PDC_UTF8 ON)
# set(PDC_WIDE ON)
add_subdirectory(x11new)

endif()

endif()

add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_SOURCE_DIR}/cmake/make_uninstall.cmake")
Expand Down
2 changes: 2 additions & 0 deletions cmake/build_options.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ option(PDC_DOSVT_BUILD "Build VT Project" OFF)
option(PDC_SDL2_BUILD "Build SDL2 Project" ON)
option(PDC_SDL2_DEPS_BUILD "Build SDL2 and dependencies" ON)
option(PDC_GL_BUILD "Build OpenGL Project" ON)
option(PDC_X11_BUILD "Build X11 Project" OFF)

message(STATUS "PDC_BUILD_SHARED ....... ${PDC_BUILD_SHARED}")
message(STATUS "PDC_UTF8 ............... ${PDC_UTF8}")
Expand All @@ -24,6 +25,7 @@ message(STATUS "PDC_DOSVT_BUILD ........ ${PDC_DOSVT_BUILD}")
message(STATUS "PDC_SDL2_BUILD ......... ${PDC_SDL2_BUILD}")
message(STATUS "PDC_SDL2_DEPS_BUILD .... ${PDC_SDL2_DEPS_BUILD}")
message(STATUS "PDC_GL_BUILD ........... ${PDC_GL_BUILD}")
message(STATUS "PDC_X11_BUILD .......... ${PDC_X11_BUILD}")

# normalize a windows path
file(TO_CMAKE_PATH "${CMAKE_INSTALL_PREFIX}" CMAKE_INSTALL_PREFIX)
177 changes: 177 additions & 0 deletions x11new/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
cmake_minimum_required(VERSION 3.11)

if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "MinSizeRel" CACHE STRING "Choose the type of build, options are: Debug, Release, or MinSizeRel." FORCE)
message(STATUS "CMAKE_BUILD_TYPE not set, defaulting to MinSizeRel.")
endif()
set (CMAKE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..")
set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_SOURCE_DIR}/cmake")
set (PDCURSES_SRCDIR "${CMAKE_SOURCE_DIR}")

include (get_version)
project(x11 VERSION "${CURSES_VERSION}" LANGUAGES C)

message(STATUS "**** ${PROJECT_NAME} ****")

message(STATUS "Generator .............. ${CMAKE_GENERATOR}")
message(STATUS "Build Type ............. ${CMAKE_BUILD_TYPE}")

option(PDC_NO_LEAKS "No Leaks" OFF)
option(PDC_CHTYPE_16 "CHTYPE_16" OFF)

set (PDCURSES_SOURCES ${PDCURSES_SRCDIR}/pdcurses/addch.c
${PDCURSES_SRCDIR}/pdcurses/addchstr.c
${PDCURSES_SRCDIR}/pdcurses/addstr.c
${PDCURSES_SRCDIR}/pdcurses/attr.c
${PDCURSES_SRCDIR}/pdcurses/beep.c
${PDCURSES_SRCDIR}/pdcurses/bkgd.c
${PDCURSES_SRCDIR}/pdcurses/border.c
${PDCURSES_SRCDIR}/pdcurses/clear.c
${PDCURSES_SRCDIR}/pdcurses/color.c
${PDCURSES_SRCDIR}/pdcurses/debug.c
${PDCURSES_SRCDIR}/pdcurses/delch.c
${PDCURSES_SRCDIR}/pdcurses/deleteln.c
${PDCURSES_SRCDIR}/pdcurses/getch.c
${PDCURSES_SRCDIR}/pdcurses/getstr.c
${PDCURSES_SRCDIR}/pdcurses/getyx.c
${PDCURSES_SRCDIR}/pdcurses/inch.c
${PDCURSES_SRCDIR}/pdcurses/inchstr.c
${PDCURSES_SRCDIR}/pdcurses/initscr.c
${PDCURSES_SRCDIR}/pdcurses/inopts.c
${PDCURSES_SRCDIR}/pdcurses/insch.c
${PDCURSES_SRCDIR}/pdcurses/insstr.c
${PDCURSES_SRCDIR}/pdcurses/instr.c
${PDCURSES_SRCDIR}/pdcurses/kernel.c
${PDCURSES_SRCDIR}/pdcurses/keyname.c
${PDCURSES_SRCDIR}/pdcurses/mouse.c
${PDCURSES_SRCDIR}/pdcurses/move.c
${PDCURSES_SRCDIR}/pdcurses/outopts.c
${PDCURSES_SRCDIR}/pdcurses/overlay.c
${PDCURSES_SRCDIR}/pdcurses/pad.c
${PDCURSES_SRCDIR}/pdcurses/panel.c
${PDCURSES_SRCDIR}/pdcurses/printw.c
${PDCURSES_SRCDIR}/pdcurses/refresh.c
${PDCURSES_SRCDIR}/pdcurses/scanw.c
${PDCURSES_SRCDIR}/pdcurses/scr_dump.c
${PDCURSES_SRCDIR}/pdcurses/scroll.c
${PDCURSES_SRCDIR}/pdcurses/slk.c
${PDCURSES_SRCDIR}/pdcurses/termattr.c
${PDCURSES_SRCDIR}/pdcurses/terminfo.c
${PDCURSES_SRCDIR}/pdcurses/touch.c
${PDCURSES_SRCDIR}/pdcurses/util.c
${PDCURSES_SRCDIR}/pdcurses/window.c
${PDCURSES_SRCDIR}/x11new/pdcclip.c
${PDCURSES_SRCDIR}/x11new/pdcdisp.c
${PDCURSES_SRCDIR}/x11new/pdcgetsc.c
${PDCURSES_SRCDIR}/x11new/pdckbd.c
${PDCURSES_SRCDIR}/x11new/pdcscrn.c
${PDCURSES_SRCDIR}/x11new/pdcsetsc.c
${PDCURSES_SRCDIR}/x11new/pdcutil.c
${PDCURSES_SRCDIR}/x11new/pdcutil.c)

if (PDC_BUILD_SHARED)
add_library(${PROJECT_NAME} SHARED ${PDCURSES_SOURCES})
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "pdcurses")
else ()
add_library(${PROJECT_NAME} STATIC ${PDCURSES_SOURCES})
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "pdcursesstatic")
endif ()

target_include_directories(${PROJECT_NAME} PRIVATE "${PDCURSES_SRCDIR}"
"${CMAKE_CURRENT_BINARY_DIR}")

target_compile_options (${PROJECT_NAME} PRIVATE -Wall -Wextra -pedantic -Werror -fPIC)
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
target_compile_options (${PROJECT_NAME} PRIVATE -g3)
target_compile_definitions(${PROJECT_NAME} PUBLIC -DPDCDEBUG)
else ()
target_compile_options (${PROJECT_NAME} PRIVATE -O3)
endif ()

if (PDC_NO_LEAKS)
target_compile_definitions(${PROJECT_NAME} PUBLIC -DNO_LEAKS)
endif ()


if (PDC_UTF8)
target_compile_definitions(${PROJECT_NAME} PUBLIC -DPDC_FORCE_UTF8)
endif ()

if (PDC_WIDE)
target_compile_definitions(${PROJECT_NAME} PUBLIC -DPDC_WIDE)
endif ()

if (PDC_CHTYPE_32)
target_compile_definitions(${PROJECT_NAME} PUBLIC -DCHTYPE_32)
endif ()

if (PDC_CHTYPE_16)
target_compile_definitions(${PROJECT_NAME} PUBLIC -DCHTYPE_16)
endif ()

target_link_libraries (${PROJECT_NAME} -lX11 -lpthread)
set(PDCURSES_DIST ${CMAKE_INSTALL_PREFIX}/${CMAKE_BUILD_TYPE})

install (TARGETS ${PROJECT_NAME}
EXPORT ${PROJECT_NAME}_Targets
ARCHIVE DESTINATION ${PDCURSES_DIST}/lib/${PROJECT_NAME}
LIBRARY DESTINATION ${PDCURSES_DIST}/lib/${PROJECT_NAME}
RUNTIME DESTINATION ${PDCURSES_DIST}/bin/${PROJECT_NAME})
install (FILES "${PDCURSES_SRCDIR}/curses.h"
"${PDCURSES_SRCDIR}/curspriv.h"
DESTINATION include)

macro (x11_app dir targ)
set(bin_name "${PROJECT_NAME}_${targ}")

if(${targ} STREQUAL "tuidemo")
set(src_files ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/tuidemo.c ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/tui.c)
else()
set(src_files ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${targ}.c)
endif()

if(${ARGV2})
add_executable(${bin_name} WIN32 ${src_files})
else()
add_executable(${bin_name} ${src_files})
endif()
target_include_directories(${bin_name} PRIVATE "${PDCURSES_SRCDIR}"
"${CMAKE_CURRENT_BINARY_DIR}")

target_link_libraries(${bin_name} ${PROJECT_NAME} -lX11 -lpthread)

add_dependencies(${bin_name} ${PROJECT_NAME})
set_target_properties(${bin_name} PROPERTIES OUTPUT_NAME ${targ})
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/${targ}" DESTINATION ${PDCURSES_DIST}/bin/${PROJECT_NAME})
endmacro ()

# demos
x11_app(../demos calendar)
x11_app(../demos firework)
x11_app(../demos init_col)
x11_app(../demos mbrot)
x11_app(../demos newtest)
x11_app(../demos ozdemo)
x11_app(../demos picsview)
x11_app(../demos ptest)
x11_app(../demos rain)
x11_app(../demos speed)
x11_app(../demos test_pan)
x11_app(../demos testcurs)
x11_app(../demos widetest)
x11_app(../demos worm)
x11_app(../demos xmas)
x11_app(../demos tuidemo)

# tests
x11_app(../tests brk_test)
x11_app(../tests del_test)
x11_app(../tests focus)
x11_app(../tests ins_del)
x11_app(../tests keytest)
x11_app(../tests opaque)
x11_app(../tests restart)
x11_app(../tests ripoff)
x11_app(../tests show_col)
x11_app(../tests show_uni)