summaryrefslogtreecommitdiff
path: root/indra/test/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'indra/test/CMakeLists.txt')
-rw-r--r--indra/test/CMakeLists.txt152
1 files changed, 152 insertions, 0 deletions
diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt
new file mode 100644
index 0000000000..32579e4fe2
--- /dev/null
+++ b/indra/test/CMakeLists.txt
@@ -0,0 +1,152 @@
+# -*- cmake -*-
+
+project (test)
+
+include(00-Common)
+include(LLCommon)
+include(LLDatabase)
+include(LLInventory)
+include(LLMath)
+include(LLMessage)
+include(LLVFS)
+include(LLXML)
+include(Linking)
+
+include_directories(
+ ${LLCOMMON_INCLUDE_DIRS}
+ ${LLDATABASE_INCLUDE_DIRS}
+ ${LLMATH_INCLUDE_DIRS}
+ ${LLMESSAGE_INCLUDE_DIRS}
+ ${LLINVENTORY_INCLUDE_DIRS}
+ ${LLVFS_INCLUDE_DIRS}
+ ${LLXML_INCLUDE_DIRS}
+ )
+
+set(test_SOURCE_FILES
+ common.cpp
+ inventory.cpp
+ io.cpp
+ llapp_tut.cpp
+ llbase64_tut.cpp
+ llblowfish_tut.cpp
+ llbuffer_tut.cpp
+ lldatabase_tut.cpp
+ lldate_tut.cpp
+ llerror_tut.cpp
+ llhost_tut.cpp
+ llhttpdate_tut.cpp
+ llhttpclient_tut.cpp
+ llhttpnode_tut.cpp
+ llinventoryparcel_tut.cpp
+ lliohttpserver_tut.cpp
+ lljoint_tut.cpp
+ llmime_tut.cpp
+ llmessageconfig_tut.cpp
+ llnamevalue_tut.cpp
+ llpermissions_tut.cpp
+ llpipeutil.cpp
+ llquaternion_tut.cpp
+ llrandom_tut.cpp
+ llsaleinfo_tut.cpp
+ llsdmessagebuilder_tut.cpp
+ llsdmessagereader_tut.cpp
+ llsd_new_tut.cpp
+ llsdserialize_tut.cpp
+ llsdutil_tut.cpp
+ llservicebuilder_tut.cpp
+ llstreamtools_tut.cpp
+ lltemplatemessagebuilder_tut.cpp
+ lltiming_tut.cpp
+ lltut.cpp
+ lluri_tut.cpp
+ lluuidhashmap_tut.cpp
+ llxfer_tut.cpp
+ math.cpp
+ message_tut.cpp
+ reflection_tut.cpp
+ test.cpp
+ v2math_tut.cpp
+ v3color_tut.cpp
+ v3dmath_tut.cpp
+ v3math_tut.cpp
+ v4color_tut.cpp
+ v4coloru_tut.cpp
+ v4math_tut.cpp
+ )
+
+set(test_HEADER_FILES
+ CMakeLists.txt
+
+ llpipeutil.h
+ llsdtraits.h
+ lltut.h
+ )
+
+if (NOT WINDOWS)
+ list(APPEND test_SOURCE_FILES
+ llmessagetemplateparser_tut.cpp
+ )
+endif (NOT WINDOWS)
+
+set_source_files_properties(${test_HEADER_FILES}
+ PROPERTIES HEADER_FILE_ONLY TRUE)
+
+list(APPEND test_SOURC_FILES ${test_HEADER_FILES})
+
+add_executable(test ${test_SOURCE_FILES})
+
+target_link_libraries(test
+ ${LLDATABASE_LIBRARIES}
+ ${LLINVENTORY_LIBRARIES}
+ ${LLMESSAGE_LIBRARIES}
+ ${LLMATH_LIBRARIES}
+ ${LLVFS_LIBRARIES}
+ ${LLXML_LIBRARIES}
+ ${LLCOMMON_LIBRARIES}
+ ${PTHREAD_LIBRARY}
+ ${WINDOWS_LIBRARIES}
+ )
+
+if (WINDOWS)
+ set_target_properties(test
+ PROPERTIES
+ LINK_FLAGS "/NODEFAULTLIB:MSVCRT"
+ LINK_FLAGS_DEBUG "/NODEFAULTLIB:LIBCMT"
+ )
+endif (WINDOWS)
+
+get_target_property(TEST_EXE test LOCATION)
+
+add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cpp_tests_ok.txt
+ COMMAND ${TEST_EXE}
+ ARGS
+ --output=${CMAKE_CURRENT_BINARY_DIR}/cpp_test_results.txt
+ --touch=${CMAKE_CURRENT_BINARY_DIR}/cpp_tests_ok.txt
+ DEPENDS test
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMENT "C++ unit tests"
+ )
+
+set(test_results ${CMAKE_CURRENT_BINARY_DIR}/cpp_tests_ok.txt)
+
+if (EXISTS /etc/debian_version_FAIL)
+ # The Python tests have all kinds of wacky non-portable assumptions
+ # built in.
+
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/py_tests_ok.txt
+ COMMAND ${PYTHON_EXECUTABLE}
+ ARGS
+ ${CMAKE_CURRENT_SOURCE_DIR}/test.py
+ --output=${CMAKE_CURRENT_BINARY_DIR}/py_test_results.txt
+ --touch=${CMAKE_CURRENT_BINARY_DIR}/py_tests_ok.txt
+ DEPENDS test.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMENT "Python unit tests"
+ )
+
+ list(APPEND test_results ${CMAKE_CURRENT_BINARY_DIR}/py_tests_ok.txt)
+endif (EXISTS /etc/debian_version_FAIL)
+
+add_custom_target(tests_ok ALL DEPENDS ${test_results})