X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=CMakeLists.txt;h=7cf50e071ba3437c4135f2dc168f19b543c44b43;hb=dabd19d7f764b8275c9c8370c7b89675b6a78243;hp=f5dd4531d31dd66d2e5f2aefec31941c758fa7b0;hpb=9b22dd53fe62e312c1647310b7ec43aa127090af;p=fms.git diff --git a/CMakeLists.txt b/CMakeLists.txt index f5dd453..7cf50e0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,34 +11,44 @@ IF(APPLE) ENDIF(APPLE) OPTION(DO_CHARSET_CONVERSION "Do charset conversion on sent messages to UTF-8. This requires libiconv." ON) OPTION(I_HAVE_READ_THE_README "I have fully read and understood the readme.txt." OFF) +OPTION(ALTERNATE_CAPTCHA "Use alternate captcha. This requires the FreeImage library." OFF) -SET(FMS_SRC +SET(FMS_SRC src/base64.cpp src/bitmapvalidator.cpp src/board.cpp src/boardlist.cpp -src/commandthread.cpp -src/datetime.cpp +src/db +src/dbconversions.cpp +src/dbmaintenancethread.cpp +src/dbsetup.cpp +src/fmsapp.cpp +src/freenet src/global.cpp src/hex.cpp +src/http +src/ipaddressacl.cpp src/localidentity.cpp -src/logfile.cpp src/main.cpp src/message.cpp src/messagelist.cpp +src/nntp src/option.cpp +src/optionssetup.cpp src/socketdefines.cpp src/stringfunctions.cpp -src/threadcontroller.cpp -src/uuidgenerator.cpp +src/threadwrapper src/db/sqlite3db.cpp src/db/sqlite3recordset.cpp src/db/sqlite3statement.cpp src/freenet/boardlistinserter.cpp src/freenet/boardlistrequester.cpp src/freenet/boardlistxml.cpp +src/freenet/captcha src/freenet/fcpv2.cpp src/freenet/fileinserter.cpp +src/freenet/fmsversionrequester.cpp +src/freenet/fmsversionxml.cpp src/freenet/freenetmasterthread.cpp src/freenet/freenetssk.cpp src/freenet/identityinserter.cpp @@ -56,19 +66,22 @@ src/freenet/messagelistrequester.cpp src/freenet/messagelistxml.cpp src/freenet/messagerequester.cpp src/freenet/messagexml.cpp -src/freenet/periodicdbmaintenance.cpp src/freenet/siteinserter.cpp src/freenet/trustlistinserter.cpp src/freenet/trustlistrequester.cpp src/freenet/trustlistxml.cpp src/freenet/unkeyedidcreator.cpp +src/freenet/captcha/easybmp src/freenet/captcha/simplecaptcha.cpp src/freenet/captcha/easybmp/EasyBMP.cpp src/freenet/captcha/easybmp/EasyBMP_Font.cpp src/freenet/captcha/easybmp/EasyBMP_Geometry.cpp +src/http/fmshttprequesthandlerfactory.cpp src/http/httpthread.cpp src/http/identityexportxml.cpp src/http/ipagehandler.cpp +src/http/multipartparser.cpp +src/http/pages src/http/pages/addpeerpage.cpp src/http/pages/announceidentitypage.cpp src/http/pages/boardspage.cpp @@ -83,8 +96,11 @@ src/http/pages/optionspage.cpp src/http/pages/peerdetailspage.cpp src/http/pages/peermaintenancepage.cpp src/http/pages/peertrustpage.cpp +src/http/pages/recentlyaddedpage.cpp src/http/pages/showcaptchapage.cpp +src/http/pages/versioninfopage.cpp src/nntp/extensiontrust.cpp +src/nntp/mime src/nntp/nntpconnection.cpp src/nntp/nntplistener.cpp src/nntp/uwildmat.cpp @@ -92,36 +108,30 @@ src/nntp/mime/Mime.cpp src/nntp/mime/MimeChar.cpp src/nntp/mime/MimeCode.cpp src/nntp/mime/MimeType.cpp -src/pthreadwrapper/guard.cpp -src/pthreadwrapper/mutex.cpp -src/pthreadwrapper/runnable.cpp -src/pthreadwrapper/thread.cpp -src/pthreadwrapper/threadedexecutor.cpp -src/xyssl/sha1.c +src/threadwrapper/threadedexector.cpp ) +SET(FMS_PLATFORM_SRC ) + IF(DO_CHARSET_CONVERSION) SET(FMS_SRC ${FMS_SRC} src/charsetconverter.cpp) ENDIF(DO_CHARSET_CONVERSION) -IF(WIN32) - SET(FMS_PLATFORM_SRC src/fmsservice.cpp) -ELSE(WIN32) - SET(FMS_PLATFORM_SRC src/fmsdaemon.cpp) -ENDIF(WIN32) +IF(ALTERNATE_CAPTCHA) + SET(FMS_SRC ${FMS_SRC} + src/freenet/captcha/alternatecaptcha1.cpp + src/freenet/captcha/alternatecaptcha2.cpp + src/freenet/captcha/alternatecaptchafonts.cpp + src/freenet/captcha/freeimage/bitmap.cpp + src/freenet/captcha/freeimage/font.cpp) +ELSE(ALTERNATE_CAPTCHA) + MESSAGE(STATUS "You are using the old captcha generator. Add a -D ALTERNATE_CAPTCHA=ON to the command line to use the alternate captcha generator.") +ENDIF(ALTERNATE_CAPTCHA) IF(NOT I_HAVE_READ_THE_README) MESSAGE(FATAL_ERROR "You must fully read the readme.txt before continuing.") ENDIF(NOT I_HAVE_READ_THE_README) -ADD_DEFINITIONS(-DTIXML_USE_STL) - -# was for ZThreads -#IF(CMAKE_COMPILER_IS_GNUCXX) -# #ADD_DEFINITIONS(-fpermissive) -# SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive") -#ENDIF(CMAKE_COMPILER_IS_GNUCXX) - ADD_EXECUTABLE(fms ${FMS_SRC} ${FMS_PLATFORM_SRC}) # link dl - For SQLite3 and shttpd - not for FreeBSD @@ -139,9 +149,10 @@ IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ENDIF(CMAKE_COMPILER_IS_GNUCXX) ENDIF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -# link ws2_32 for Windows +# link ws2_32 and iphlpapi for Windows IF(WIN32) TARGET_LINK_LIBRARIES(fms ws2_32) + TARGET_LINK_LIBRARIES(fms iphlpapi) ENDIF(WIN32) # add -lxnet and -lsocket on solaris @@ -153,10 +164,51 @@ ENDIF(CMAKE_SYSTEM_NAME STREQUAL "SunOS") IF(NOT USE_BUNDLED_SQLITE) FIND_LIBRARY(SQLITE3_LIBRARY NAMES sqlite3 sqlite3_s) ENDIF(NOT USE_BUNDLED_SQLITE) -FIND_LIBRARY(TINYXML_LIBRARY NAMES tinyxml tinyxml_s) +FIND_LIBRARY(POCO_FOUNDATION_LIBRARY NAMES PocoFoundation PocoFoundationmt) +FIND_LIBRARY(POCO_NET_LIBRARY NAMES PocoNet PocoNetmt) +FIND_LIBRARY(POCO_UTIL_LIBRARY NAMES PocoUtil PocoUtilmt) +FIND_LIBRARY(POCO_XML_LIBRARY NAMES PocoXML PocoXMLmt) FIND_LIBRARY(PTHREADS_LIBRARY NAMES pthread pthreads pthreadvc2) -FIND_LIBRARY(SHTTPD_LIBRARY NAMES shttpd shttpd_s) FIND_LIBRARY(ICONV_LIBRARY NAMES iconv iconv_s libiconv libiconv_s) +IF(ALTERNATE_CAPTCHA) + FIND_FILE(FREEIMAGE_LIBRARY NAMES libfreeimage.a PATHS /usr/lib/) + IF(NOT FREEIMAGE_LIBRARY) + FIND_LIBRARY(FREEIMAGE_LIBRARY NAMES FreeImage libFreeImage libfreeimage freeimage) + ENDIF(NOT FREEIMAGE_LIBRARY) +ENDIF(ALTERNATE_CAPTCHA) + +IF(POCO_FOUNDATION_LIBRARY) + TARGET_LINK_LIBRARIES(fms ${POCO_FOUNDATION_LIBRARY}) + ADD_DEFINITIONS(-DPOCO_HAVE_IPv6) + IF(WIN32) + ADD_DEFINITIONS(-DPOCO_STATIC) + ENDIF(WIN32) + IF(POCO_UTIL_LIBRARY) + TARGET_LINK_LIBRARIES(fms ${POCO_UTIL_LIBRARY}) + ELSE(POCO_UTIL_LIBRARY) + MESSAGE(FATAL_ERROR "Could not find system Poco Util library. You must set the location manually.") + ENDIF(POCO_UTIL_LIBRARY) + IF(POCO_NET_LIBRARY) + TARGET_LINK_LIBRARIES(fms ${POCO_NET_LIBRARY}) + ELSE(POCO_NET_LIBRARY) + MESSAGE(FATAL_ERROR "Could not find system Poco Net library. You must set the location manually.") + ENDIF(POCO_NET_LIBRARY) + IF(POCO_XML_LIBRARY) + TARGET_LINK_LIBRARIES(fms ${POCO_XML_LIBRARY}) + ELSE(POCO_XML_LIBRARY) + MESSAGE(FATAL_ERROR "Could not find system Poco XML library. You must set the location manually.") + ENDIF(POCO_XML_LIBRARY) +ELSE(POCO_FOUNDATION_LIBRARY) + MESSAGE(FATAL_ERROR "Could not find system Poco Foundation library. You must set the location manually.") +ENDIF(POCO_FOUNDATION_LIBRARY) + +IF(NOT WIN32) + IF(PTHREADS_LIBRARY) + TARGET_LINK_LIBRARIES(fms ${PTHREADS_LIBRARY}) + ELSE(PTHREADS_LIBRARY) + MESSAGE(FATAL_ERROR "Could not find system pthread library. You must set the location manually.") + ENDIF(PTHREADS_LIBRARY) +ENDIF(NOT WIN32) IF(SQLITE3_LIBRARY) TARGET_LINK_LIBRARIES(fms ${SQLITE3_LIBRARY}) @@ -169,37 +221,6 @@ ELSE(SQLITE3_LIBRARY) INCLUDE_DIRECTORIES(libs/sqlite3) ENDIF(SQLITE3_LIBRARY) -IF(TINYXML_LIBRARY) - TARGET_LINK_LIBRARIES(fms ${TINYXML_LIBRARY}) -ELSE(TINYXML_LIBRARY) - MESSAGE(STATUS "Could not find system TinyXML library. Will compile from included source.") - ADD_LIBRARY(tinyxml libs/tinyxml/tinystr.cpp libs/tinyxml/tinyxml.cpp libs/tinyxml/tinyxmlerror.cpp libs/tinyxml/tinyxmlparser.cpp) - TARGET_LINK_LIBRARIES(fms tinyxml) - INCLUDE_DIRECTORIES(libs/tinyxml) -ENDIF(TINYXML_LIBRARY) - -IF(PTHREADS_LIBRARY) - TARGET_LINK_LIBRARIES(fms ${PTHREADS_LIBRARY}) -ELSE(PTHREADS_LIBRARY) - MESSAGE(FATAL_ERROR "Could not find pthreads library. You must set the location manually.") -ENDIF(PTHREADS_LIBRARY) - -IF(SHTTPD_LIBRARY) - TARGET_LINK_LIBRARIES(fms ${SHTTPD_LIBRARY}) -ELSE(SHTTPD_LIBRARY) - MESSAGE(STATUS "Could not find shttpd library. Will compile from included source.") - ADD_DEFINITIONS(-DEMBEDDED) - INCLUDE_DIRECTORIES(libs/shttpd/include) - IF(WIN32) - ADD_DEFINITIONS(-DNO_GUI) - SET(SHTTPD_PLATFORM_SRC libs/shttpd/compat_win32.c) - ELSE(WIN32) - SET(SHTTPD_PLATFORM_SRC libs/shttpd/compat_unix.c) - ENDIF(WIN32) - ADD_LIBRARY(shttpd ${SHTTPD_PLATFORM_SRC} libs/shttpd/auth.c libs/shttpd/cgi.c libs/shttpd/config.c libs/shttpd/io_cgi.c libs/shttpd/io_dir.c libs/shttpd/io_emb.c libs/shttpd/io_file.c libs/shttpd/io_socket.c libs/shttpd/io_ssi.c libs/shttpd/io_ssl.c libs/shttpd/log.c libs/shttpd/md5.c libs/shttpd/shttpd.c libs/shttpd/string.c) - TARGET_LINK_LIBRARIES(fms shttpd) -ENDIF(SHTTPD_LIBRARY) - IF(DO_CHARSET_CONVERSION) ADD_DEFINITIONS(-DDO_CHARSET_CONVERSION) IF(ICONV_LIBRARY) @@ -210,3 +231,17 @@ IF(DO_CHARSET_CONVERSION) ENDIF(WIN32) ENDIF(ICONV_LIBRARY) ENDIF(DO_CHARSET_CONVERSION) + +IF(ALTERNATE_CAPTCHA) + IF(FREEIMAGE_LIBRARY) + TARGET_LINK_LIBRARIES(fms ${FREEIMAGE_LIBRARY}) + ADD_DEFINITIONS("-DALTERNATE_CAPTCHA") + ELSE(FREEIMAGE_LIBRARY) + MESSAGE(FATAL_ERROR "Could not find the FreeImage library. Set the location manually, or turn off the alternate captchas.") + ENDIF(FREEIMAGE_LIBRARY) +ENDIF(ALTERNATE_CAPTCHA) + +# FreeBSD won't find Poco include files without this +IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") + INCLUDE_DIRECTORIES(AFTER /usr/local/include) +ENDIF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")