version 0.1.3
[fms.git] / CMakeLists.txt
index 5217bdc..4e06722 100644 (file)
@@ -53,42 +53,56 @@ src/nntp/mime/Mime.cpp
 src/nntp/mime/MimeChar.cpp\r
 src/nntp/mime/MimeCode.cpp\r
 src/nntp/mime/MimeType.cpp\r
+src/pthreadwrapper/guard.cpp\r
+src/pthreadwrapper/mutex.cpp\r
+src/pthreadwrapper/runnable.cpp\r
+src/pthreadwrapper/thread.cpp\r
 src/xyssl/sha1.c\r
 )\r
 \r
 ADD_DEFINITIONS(-DTIXML_USE_STL)\r
 \r
-ADD_LIBRARY(sqlite3 libs/sqlite3/sqlite3.c)\r
-ADD_LIBRARY(tinyxml libs/tinyxml/tinystr.cpp libs/tinyxml/tinyxml.cpp libs/tinyxml/tinyxmlerror.cpp libs/tinyxml/tinyxmlparser.cpp)\r
+IF(CMAKE_COMPILER_IS_GNUCXX)\r
+       ADD_DEFINITIONS(-fpermissive)\r
+ENDIF(CMAKE_COMPILER_IS_GNUCXX)\r
 \r
 ADD_EXECUTABLE(fms ${FMS_SRC})\r
 \r
-INCLUDE_DIRECTORIES(libs/sqlite3 libs/tinyxml)\r
-\r
-TARGET_LINK_LIBRARIES(fms sqlite3 tinyxml)\r
-\r
 IF(WIN32)\r
        TARGET_LINK_LIBRARIES(fms ws2_32)\r
 ENDIF(WIN32)\r
 \r
-#FIND_LIBRARY(SQLITE3_LIBRARY NAMES sqlite3 sqlite3_s)\r
-#FIND_LIBRARY(TINYXML_LIBRARY NAMES tinyxml tinyxml_s)\r
-FIND_LIBRARY(ZTHREADS_LIBRARY NAMES zthread ZThread zthread_s)\r
+FIND_LIBRARY(SQLITE3_LIBRARY NAMES sqlite3 sqlite3_s)\r
+FIND_LIBRARY(TINYXML_LIBRARY NAMES tinyxml tinyxml_s)\r
+#FIND_LIBRARY(ZTHREADS_LIBRARY NAMES zthread ZThread zthread_s)\r
+FIND_LIBRARY(PTHREADS_LIBRARY NAMES pthread pthreads pthreadvc2)\r
+\r
+IF(SQLITE3_LIBRARY)\r
+       TARGET_LINK_LIBRARIES(fms ${SQLITE3_LIBRARY})\r
+ELSE(SQLITE3_LIBRARY)\r
+       MESSAGE(STATUS "Could not find system SQLite library.  Will compile from included source.")\r
+       ADD_LIBRARY(sqlite3 libs/sqlite3/sqlite3.c)\r
+       TARGET_LINK_LIBRARIES(fms sqlite3)\r
+       INCLUDE_DIRECTORIES(libs/sqlite3)\r
+ENDIF(SQLITE3_LIBRARY)\r
 \r
-#IF(SQLITE3_LIBRARY)\r
-#      TARGET_LINK_LIBRARIES(fms ${SQLITE3_LIBRARY})\r
-#ELSE(SQLITE3_LIBRARY)\r
-#      MESSAGE(FATAL_ERROR "Could not find SQLite library.  You must set the location manually.")\r
-#ENDIF(SQLITE3_LIBRARY)\r
+IF(TINYXML_LIBRARY)\r
+       TARGET_LINK_LIBRARIES(fms ${TINYXML_LIBRARY})\r
+ELSE(TINYXML_LIBRARY)\r
+       MESSAGE(STATUS "Could not find system TinyXML library.  Will compile from included source.")\r
+       ADD_LIBRARY(tinyxml libs/tinyxml/tinystr.cpp libs/tinyxml/tinyxml.cpp libs/tinyxml/tinyxmlerror.cpp libs/tinyxml/tinyxmlparser.cpp)\r
+       TARGET_LINK_LIBRARIES(fms tinyxml)\r
+       INCLUDE_DIRECTORIES(libs/tinyxml)\r
+ENDIF(TINYXML_LIBRARY)\r
 \r
-#IF(TINYXML_LIBRARY)\r
-#      TARGET_LINK_LIBRARIES(fms ${TINYXML_LIBRARY})\r
-#ELSE(TINYXML_LIBRARY)\r
-#      MESSAGE(FATAL_ERROR "Could not find TinyXML library.  You must set the location manually.")\r
-#ENDIF(TINYXML_LIBRARY)\r
+#IF(ZTHREADS_LIBRARY)\r
+#      TARGET_LINK_LIBRARIES(fms ${ZTHREADS_LIBRARY})\r
+#ELSE(ZTHREADS_LIBRARY)\r
+#      MESSAGE(FATAL_ERROR "Could not find ZThreads library.  You must set the location manually.")\r
+#ENDIF(ZTHREADS_LIBRARY)\r
 \r
-IF(ZTHREADS_LIBRARY)\r
-       TARGET_LINK_LIBRARIES(fms ${ZTHREADS_LIBRARY})\r
-ELSE(ZTHREADS_LIBRARY)\r
-       MESSAGE(FATAL_ERROR "Could not find ZThreads library.  You must set the location manually.")\r
-ENDIF(ZTHREADS_LIBRARY)\r
+IF(PTHREADS_LIBRARY)\r
+       TARGET_LINK_LIBRARIES(fms ${PTHREADS_LIBRARY})\r
+ELSE(PTHREADS_LIBRARY)\r
+       MESSAGE(FATAL ERROR "Could not find pthreads library.  You must set the location manually.")\r
+ENDIF(PTHREADS_LIBRARY)\r