\r
PROJECT(fms)\r
\r
-OPTION(USE_BUNDLED_SQLITE "Use the bundled SQLite3 library." OFF)\r
+OPTION(USE_BUNDLED_SQLITE "Use the bundled SQLite3 library." ON)\r
IF(APPLE)\r
SET(USE_BUNDLED_SQLITE ON)\r
ENDIF(APPLE)\r
OPTION(DO_CHARSET_CONVERSION "Do charset conversion on sent messages to UTF-8. This requires libiconv." ON)\r
OPTION(I_HAVE_READ_THE_README "I have fully read and understood the readme.txt." OFF)\r
OPTION(ALTERNATE_CAPTCHA "Use alternate captcha. This requires the FreeImage library." OFF)\r
+OPTION(QUERY_LOG "Log all database queries made by FMS." OFF)\r
\r
SET(FMS_SRC\r
src/base64.cpp\r
src/freenet/identityintroductionxml.cpp\r
src/freenet/identityrequester.cpp\r
src/freenet/identityxml.cpp\r
+src/freenet/inactivemessagelistrequester.cpp\r
src/freenet/introductionpuzzleinserter.cpp\r
src/freenet/introductionpuzzlerequester.cpp\r
src/freenet/introductionpuzzlexml.cpp\r
src/freenet/trustlistrequester.cpp\r
src/freenet/trustlistxml.cpp\r
src/freenet/unkeyedidcreator.cpp\r
+src/freenet/unknownidentityrequester.cpp\r
src/freenet/captcha/simplecaptcha.cpp\r
src/freenet/captcha/easybmp/EasyBMP.cpp\r
src/freenet/captcha/easybmp/EasyBMP_Font.cpp\r
src/http/pages/recentlyaddedpage.cpp\r
src/http/pages/showcaptchapage.cpp\r
src/http/pages/showimagepage.cpp\r
+src/http/pages/showpendingmessagepage.cpp\r
src/http/pages/versioninfopage.cpp\r
src/nntp/extensiontrust.cpp\r
src/nntp/nntpconnection.cpp\r
src/nntp/mime/MimeCode.cpp\r
src/nntp/mime/MimeType.cpp\r
src/threadwrapper/threadedexector.cpp\r
+src/unicode/ConvertUTF.c\r
+src/unicode/unicodeformatter.cpp\r
+src/unicode/utfconversion.cpp\r
)\r
\r
SET(FMS_PLATFORM_SRC )\r
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.")\r
ENDIF(ALTERNATE_CAPTCHA)\r
\r
+# Get a relative list of include files.\r
+FILE(GLOB_RECURSE FMS_INC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} include/*.h)\r
+\r
+# Create source groups for all sources and includes, in their original directory structure.\r
+FOREACH(SRC ${FMS_SRC} ${FMS_INC})\r
+ STRING(REGEX REPLACE ${CMAKE_CURRENT_SOURCE_DIR} "Files" REL_DIR "${SRC}")\r
+ STRING(REGEX REPLACE "[\\\\/][^\\\\/]*$" "" REL_DIR "${REL_DIR}")\r
+ STRING(REGEX REPLACE "^[\\\\/]" "" REL_DIR "${REL_DIR}")\r
+ IF(REL_DIR)\r
+ STRING(REPLACE "/" "\\" REL_DIR "${REL_DIR}")\r
+ SOURCE_GROUP(${REL_DIR} FILES ${SRC})\r
+ ELSE(REL_DIR)\r
+ SOURCE_GROUP(Files FILES ${SRC})\r
+ ENDIF(REL_DIR)\r
+ENDFOREACH(SRC)\r
+\r
IF(NOT I_HAVE_READ_THE_README)\r
MESSAGE(FATAL_ERROR "You must fully read the readme.txt before continuing.")\r
ENDIF(NOT I_HAVE_READ_THE_README)\r
\r
-ADD_EXECUTABLE(fms ${FMS_SRC} ${FMS_PLATFORM_SRC})\r
+ADD_EXECUTABLE(fms ${FMS_SRC} ${FMS_PLATFORM_SRC} ${FMS_INC})\r
\r
# link dl - For SQLite3 and shttpd - not for FreeBSD\r
IF(CMAKE_COMPILER_IS_GNUCC)\r
ENDIF(ALTERNATE_CAPTCHA)\r
\r
IF(POCO_FOUNDATION_LIBRARY)\r
- TARGET_LINK_LIBRARIES(fms ${POCO_FOUNDATION_LIBRARY})\r
+ # We don't need to explicitly link under MSVC, POCO uses #pragmas to specify linked libraries.\r
+ IF(NOT MSVC)\r
+ TARGET_LINK_LIBRARIES(fms ${POCO_FOUNDATION_LIBRARY})\r
+ ENDIF(NOT MSVC)\r
ADD_DEFINITIONS(-DPOCO_HAVE_IPv6)\r
IF(WIN32)\r
ADD_DEFINITIONS(-DPOCO_STATIC)\r
ENDIF(WIN32)\r
IF(POCO_UTIL_LIBRARY)\r
- TARGET_LINK_LIBRARIES(fms ${POCO_UTIL_LIBRARY})\r
+ IF(NOT MSVC)\r
+ TARGET_LINK_LIBRARIES(fms ${POCO_UTIL_LIBRARY})\r
+ ENDIF(NOT MSVC)\r
ELSE(POCO_UTIL_LIBRARY)\r
MESSAGE(FATAL_ERROR "Could not find system Poco Util library. You must set the location manually.")\r
ENDIF(POCO_UTIL_LIBRARY)\r
IF(POCO_NET_LIBRARY)\r
- TARGET_LINK_LIBRARIES(fms ${POCO_NET_LIBRARY})\r
+ IF(NOT MSVC)\r
+ TARGET_LINK_LIBRARIES(fms ${POCO_NET_LIBRARY})\r
+ ENDIF(NOT MSVC)\r
ELSE(POCO_NET_LIBRARY)\r
MESSAGE(FATAL_ERROR "Could not find system Poco Net library. You must set the location manually.")\r
ENDIF(POCO_NET_LIBRARY)\r
IF(POCO_XML_LIBRARY)\r
- TARGET_LINK_LIBRARIES(fms ${POCO_XML_LIBRARY})\r
+ IF(NOT MSVC)\r
+ TARGET_LINK_LIBRARIES(fms ${POCO_XML_LIBRARY})\r
+ ENDIF(NOT MSVC)\r
ELSE(POCO_XML_LIBRARY)\r
MESSAGE(FATAL_ERROR "Could not find system Poco XML library. You must set the location manually.")\r
ENDIF(POCO_XML_LIBRARY)\r
IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")\r
INCLUDE_DIRECTORIES(AFTER /usr/local/include)\r
ENDIF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")\r
+\r
+IF(QUERY_LOG)\r
+ ADD_DEFINITIONS(-DQUERY_LOG)\r
+ENDIF(QUERY_LOG)\r