Thu, 23 Jul 2015 18:07:39 +0300
Added pdcurses source files, if no curses library is provided, these source files will be fallen back to instead of raising an error. Should make compiling on windows slightly less painful.
cmake_minimum_required (VERSION 2.4) cmake_policy (SET CMP0003 NEW) project (ZFC9000) string (TOLOWER ${CMAKE_PROJECT_NAME} TARGET_NAME) add_library (huffman STATIC huffman/bitreader.cpp huffman/bitwriter.cpp huffman/huffcodec.cpp huffman/huffman.cpp ) set (SOURCE_FILES sources/coloredline.cpp sources/interface.cpp sources/main.cpp sources/md5.cpp sources/mystring.cpp sources/version.cpp sources/network/bytestream.cpp sources/network/ipaddress.cpp sources/network/rconsession.cpp sources/network/udpsocket.cpp ) set (HEADER_FILES sources/basics.h sources/coloredline.h sources/geometry.h sources/interface.h sources/list.h sources/main.h sources/md5.h sources/mystring.h sources/network/bytestream.h sources/network/ipaddress.h sources/network/rconsession.h sources/network/udpsocket.h sources/range.h sources/version.h ) if (NOT WIN32) find_package (Curses REQUIRED) endif() if (MINGW) set (CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++ -static") endif() include_directories (${CMAKE_CURRENT_BINARY_DIR}) include_directories (huffman) add_executable (${TARGET_NAME} ${SOURCE_FILES} ${HEADER_FILES}) target_link_libraries (${TARGET_NAME} huffman) if (WIN32) if (PDCURSES_PATH OR PDCURSES_WIN32A_PATH) if (NOT PDCURSES_PATH) set (PDCURSES_PATH "${PDCURSES_WIN32A_PATH}") add_definitions (-DHAVE_PDCURSES_WIN32A) message (STATUS "Using external PDCurses-win32a in ${PDCURSES_WIN32A_PATH}") else() message (STATUS "Using external PDCurses in ${PDCURSES_PATH}") endif() include_directories (${PDCURSES_PATH}/include) if (MINGW) target_link_libraries (${TARGET_NAME} ${PDCURSES_PATH}/lib/pdcurses.a) else() target_link_libraries (${TARGET_NAME} ${PDCURSES_PATH}/lib/pdcurses.lib) endif() else() add_library (pdcurses STATIC pdcurses/addch.c pdcurses/addchstr.c pdcurses/addstr.c pdcurses/attr.c pdcurses/beep.c pdcurses/bkgd.c pdcurses/border.c pdcurses/clear.c pdcurses/color.c pdcurses/debug.c pdcurses/delch.c pdcurses/deleteln.c pdcurses/deprec.c pdcurses/getch.c pdcurses/getstr.c pdcurses/getyx.c pdcurses/inch.c pdcurses/inchstr.c pdcurses/initscr.c pdcurses/inopts.c pdcurses/insch.c pdcurses/insstr.c pdcurses/instr.c pdcurses/kernel.c pdcurses/keyname.c pdcurses/mouse.c pdcurses/move.c pdcurses/outopts.c pdcurses/overlay.c pdcurses/pad.c pdcurses/panel.c pdcurses/pdcclip.c pdcurses/pdcdisp.c pdcurses/pdcgetsc.c pdcurses/pdckbd.c pdcurses/pdcscrn.c pdcurses/pdcsetsc.c pdcurses/pdcutil.c pdcurses/printw.c pdcurses/refresh.c pdcurses/scanw.c pdcurses/scroll.c pdcurses/scr_dump.c pdcurses/slk.c pdcurses/termattr.c pdcurses/terminfo.c pdcurses/touch.c pdcurses/util.c pdcurses/window.c ) target_link_libraries (${TARGET_NAME} pdcurses) message (STATUS "Using internal pdcurses") endif() add_definitions (-D_CRT_SECURE_NO_WARNINGS) target_link_libraries (${TARGET_NAME} wsock32 ws2_32) include_directories (pdcurses) else() include_directories (${CURSES_INCUDE_DIRS}) # sic target_link_libraries (${TARGET_NAME} ${CURSES_LIBRARIES}) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -W -Wall -std=c++0x") endif() add_custom_target (make_hginfo_h COMMAND python "${CMAKE_SOURCE_DIR}/updaterevision/updaterevision.py" "${CMAKE_CURRENT_BINARY_DIR}/hginfo.h") add_dependencies (${TARGET_NAME} make_hginfo_h)