From 59b51d5e70bd51a59d03c46e44148f53a0bf99a6 Mon Sep 17 00:00:00 2001 From: Stefan Radomski Date: Thu, 12 May 2016 15:30:14 +0200 Subject: Corrected gitignore and travis config --- .gitignore | 7 -- .travis.yml | 7 -- contrib/cmake/BuildLibCurl.cmake | 78 +++++++++++++++++++ contrib/cmake/BuildLibEvent.cmake | 53 +++++++++++++ contrib/cmake/BuildURIParser.cmake | 54 +++++++++++++ contrib/cmake/BuildXalanC.cmake | 31 ++++++++ contrib/cmake/BuildXercesC.cmake | 79 +++++++++++++++++++ contrib/cmake/FindLibEvent.cmake | 83 ++++++++++++++++++++ test/ctest/scripts/run_generated_test.cmake | 111 +++++++++++++++++++++++++++ test/ctest/scripts/run_header_compiles.cmake | 21 +++++ test/ctest/scripts/run_promela_test.cmake | 38 +++++++++ 11 files changed, 548 insertions(+), 14 deletions(-) create mode 100644 contrib/cmake/BuildLibCurl.cmake create mode 100644 contrib/cmake/BuildLibEvent.cmake create mode 100644 contrib/cmake/BuildURIParser.cmake create mode 100644 contrib/cmake/BuildXalanC.cmake create mode 100644 contrib/cmake/BuildXercesC.cmake create mode 100644 contrib/cmake/FindLibEvent.cmake create mode 100644 test/ctest/scripts/run_generated_test.cmake create mode 100644 test/ctest/scripts/run_header_compiles.cmake create mode 100644 test/ctest/scripts/run_promela_test.cmake diff --git a/.gitignore b/.gitignore index 822a236..aa448a5 100644 --- a/.gitignore +++ b/.gitignore @@ -18,14 +18,7 @@ package/windows* *.tgz *.class -*.cmake /package/* -contrib/prebuilt/include/* - -/embedding/csharp/uSCXMLEmbedding/bin/ - -/embedding/csharp/uSCXMLEmbedding/obj/ - /test/w3c/graphs/ /.idea/* diff --git a/.travis.yml b/.travis.yml index 7eea956..0e5dca4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,12 +5,5 @@ compiler: before_install: - sudo apt-get update -qq - sudo apt-get install -qq libxml2-dev libcurl4-openssl-dev - - sudo apt-get install -qq libpurple-dev - - sudo apt-get install -qq libical-dev - - sudo apt-get install -qq libopenal-dev libsndfile-dev - - sudo apt-get install -qq expect-dev - - sudo apt-get install -qq libprotobuf-dev libprotoc-dev - - sudo apt-get install -qq swi-prolog - - wget http://uscxml.tk.informatik.tu-darmstadt.de || true script: mkdir build && cd build && cmake .. && make diff --git a/contrib/cmake/BuildLibCurl.cmake b/contrib/cmake/BuildLibCurl.cmake new file mode 100644 index 0000000..2753ee6 --- /dev/null +++ b/contrib/cmake/BuildLibCurl.cmake @@ -0,0 +1,78 @@ +include(ExternalProject) + + +if (UNIX) + externalproject_add(libcurl + URL https://curl.haxx.se/download/curl-7.48.0.tar.gz + URL_MD5 b2cac71029d28cb989150bac72aafab5 + BUILD_IN_SOURCE 0 + PREFIX ${CMAKE_BINARY_DIR}/deps/libcurl + CONFIGURE_COMMAND + "/configure" + "--without-ssl" + "--prefix=" + ) +elseif (WIN32) + + # see https://en.wikipedia.org/wiki/Visual_C%2B%2B + set(VC_VERSION 14) + + if (OFF) + elseif(MSVC_VERSION LESS 1310) + message(FATAL_ERROR "MSVC 7.1 or higher is required") + elseif(MSVC_VERSION LESS 1400) + set(VC_VERSION 7) + elseif(MSVC_VERSION LESS 1500) + set(VC_VERSION 8) + elseif(MSVC_VERSION LESS 1600) + set(VC_VERSION 9) + elseif(MSVC_VERSION LESS 1700) + set(VC_VERSION 10) + elseif(MSVC_VERSION LESS 1800) + set(VC_VERSION 11) + elseif (MSVC_VERSION LESS 1900) + set(VC_VERSION 12) + endif() + + if (WIN32) + add_definitions("-DCURL_STATICLIB") + endif() + + if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + externalproject_add(libcurl + URL https://curl.haxx.se/download/curl-7.48.0.tar.gz + URL_MD5 b2cac71029d28cb989150bac72aafab5 + BUILD_IN_SOURCE 1 + PREFIX ${CMAKE_BINARY_DIR}/deps/libcurl + CONFIGURE_COMMAND "" + BUILD_COMMAND cd winbuild && nmake /f Makefile.vc mode=static MACHINE=x64 VC=${VC_VERSION} + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory builds/libcurl-vc-x64-release-static-ipv6-sspi-winssl ${CMAKE_BINARY_DIR}/deps/libcurl/ + ) + else() + externalproject_add(libcurl + URL https://curl.haxx.se/download/curl-7.48.0.tar.gz + URL_MD5 b2cac71029d28cb989150bac72aafab5 + BUILD_IN_SOURCE 1 + PREFIX ${CMAKE_BINARY_DIR}/deps/libcurl + CONFIGURE_COMMAND "" + BUILD_COMMAND cd winbuild && nmake /f Makefile.vc mode=static MACHINE=x86 VC=${VC_VERSION} + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory builds/libcurl-vc-x86-release-static-ipv6-sspi-winssl ${CMAKE_BINARY_DIR}/deps/libcurl/ + ) + endif() +endif() + +set(LIBCURL_INCLUDE_DIR ${CMAKE_BINARY_DIR}/deps/libcurl/include) + +if (APPLE) + set(LIBCURL_LIBRARY ${CMAKE_BINARY_DIR}/deps/libcurl/lib/libcurl.dylib) +elseif(UNIX) + set(LIBCURL_LIBRARY ${CMAKE_BINARY_DIR}/deps/libcurl/lib/libcurl.so) +elseif(WIN32) + set(LIBCURL_LIBRARY ${CMAKE_BINARY_DIR}/deps/libcurl/lib/libcurl_a.lib) +else() + message(FATAL_ERROR "Unknown platform!") +endif() + + +set(LIBCURL_BUILT ON) + diff --git a/contrib/cmake/BuildLibEvent.cmake b/contrib/cmake/BuildLibEvent.cmake new file mode 100644 index 0000000..d9bfa5d --- /dev/null +++ b/contrib/cmake/BuildLibEvent.cmake @@ -0,0 +1,53 @@ +# see http://www.kitware.com/products/html/BuildingExternalProjectsWithCMake2.8.html +# see http://tools.cinemapub.be/opendcp/opendcp-0.19-src/contrib/CMakeLists.txt + +include(ExternalProject) +if (UNIX) + externalproject_add(libevent + URL https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz + URL_MD5 c4c56f986aa985677ca1db89630a2e11 + BUILD_IN_SOURCE 0 + PREFIX ${CMAKE_BINARY_DIR}/deps/libevent + CONFIGURE_COMMAND + "/configure" + "--enable-static" + "--disable-openssl" + "--prefix=" + ) +elseif (WIN32) + + + externalproject_add(libevent + URL https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz + URL_MD5 c4c56f986aa985677ca1db89630a2e11 + BUILD_IN_SOURCE 1 + PREFIX ${CMAKE_BINARY_DIR}/deps/libevent + CONFIGURE_COMMAND "" + BUILD_COMMAND nmake -f Makefile.nmake + INSTALL_COMMAND + ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/deps/libevent/lib && + ${CMAKE_COMMAND} -E copy libevent.lib libevent_core.lib libevent_extras.lib ${CMAKE_BINARY_DIR}/deps/libevent/lib/ && + ${CMAKE_COMMAND} -E copy_directory include ${CMAKE_BINARY_DIR}/deps/libevent/include + ${CMAKE_COMMAND} -E copy Win32-Code/event2 ${CMAKE_BINARY_DIR}/deps/libevent/include/event2 + ) +endif() + +set(LIBEVENT_INCLUDE_DIR ${CMAKE_BINARY_DIR}/deps/libevent/include) + +if (APPLE) + set(LIBEVENT_LIBRARIES ${CMAKE_BINARY_DIR}/deps/libevent/lib/libevent_core.a) + list (APPEND LIBEVENT_LIBRARIES ${CMAKE_BINARY_DIR}/deps/libevent/lib/libevent_extra.a) + list (APPEND LIBEVENT_LIBRARIES ${CMAKE_BINARY_DIR}/deps/libevent/lib/libevent_pthreads.a) +elseif (UNIX) + set(LIBEVENT_LIBRARIES ${CMAKE_BINARY_DIR}/deps/libevent/lib/libevent_core.a) + list (APPEND LIBEVENT_LIBRARIES ${CMAKE_BINARY_DIR}/deps/libevent/lib/libevent_extra.a) + list (APPEND LIBEVENT_LIBRARIES ${CMAKE_BINARY_DIR}/deps/libevent/lib/libevent_pthreads.a) +elseif(WIN32) + set(LIBEVENT_LIBRARIES ${CMAKE_BINARY_DIR}/deps/libevent/lib/libevent.lib) +else() + message(FATAL_ERROR "Unknown platform!") +endif() + + +set(LIBEVENT_BUILT ON) + diff --git a/contrib/cmake/BuildURIParser.cmake b/contrib/cmake/BuildURIParser.cmake new file mode 100644 index 0000000..c204eed --- /dev/null +++ b/contrib/cmake/BuildURIParser.cmake @@ -0,0 +1,54 @@ +include(ExternalProject) +if (UNIX) + externalproject_add(uriparser + URL http://ufpr.dl.sourceforge.net/project/uriparser/Sources/0.8.4/uriparser-0.8.4.zip + URL_MD5 a24c9ba0fd1a2c6c75d02859bf337cfa + BUILD_IN_SOURCE 0 + PREFIX ${CMAKE_BINARY_DIR}/deps/uriparser + CONFIGURE_COMMAND + "/configure" + "--disable-test" + "--disable-doc" + "--enable-static" + "--prefix=" + ) +elseif(WIN32) + set(VSPROJECT_PATH "win32/Visual_Studio_2005") + + if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + externalproject_add(uriparser + URL http://ufpr.dl.sourceforge.net/project/uriparser/Sources/0.8.4/uriparser-0.8.4.zip + URL_MD5 a24c9ba0fd1a2c6c75d02859bf337cfa + BUILD_IN_SOURCE 1 + PREFIX ${CMAKE_BINARY_DIR}/deps/uriparser + CONFIGURE_COMMAND "" + BUILD_COMMAND cd ${VSPROJECT_PATH} && devenv /build Release|x64 uriparser.sln + INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/deps/uriparser/lib && ${CMAKE_COMMAND} -E copy win32/uriparser.lib ${CMAKE_BINARY_DIR}/deps/uriparser/lib && ${CMAKE_COMMAND} -E copy_directory include ${CMAKE_BINARY_DIR}/deps/uriparser/include + ) + else() + externalproject_add(uriparser + URL http://ufpr.dl.sourceforge.net/project/uriparser/Sources/0.8.4/uriparser-0.8.4.zip + URL_MD5 a24c9ba0fd1a2c6c75d02859bf337cfa + BUILD_IN_SOURCE 1 + PREFIX ${CMAKE_BINARY_DIR}/deps/uriparser + CONFIGURE_COMMAND "" + BUILD_COMMAND cd ${VSPROJECT_PATH} && devenv /Upgrade uriparser.vcproj && msbuild /p:Configuration=Release /p:Platform=Win32 /t:build uriparser.vcxproj + INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/deps/uriparser/lib && ${CMAKE_COMMAND} -E copy win32/uriparser.lib ${CMAKE_BINARY_DIR}/deps/uriparser/lib && ${CMAKE_COMMAND} -E copy_directory include ${CMAKE_BINARY_DIR}/deps/uriparser/include + ) + endif() + +endif() + +set(URIPARSER_INCLUDE_DIR ${CMAKE_BINARY_DIR}/deps/uriparser/include) + +if (UNIX) + set(URIPARSER_LIBRARY ${CMAKE_BINARY_DIR}/deps/uriparser/lib/liburiparser.a) +elseif(WIN32) + set(URIPARSER_LIBRARY ${CMAKE_BINARY_DIR}/deps/uriparser/lib/uriparser.lib) +else() + message(FATAL_ERROR "Unknown platform!") +endif() + +set(URIPARSER_BUILT ON) + + diff --git a/contrib/cmake/BuildXalanC.cmake b/contrib/cmake/BuildXalanC.cmake new file mode 100644 index 0000000..a1ebfed --- /dev/null +++ b/contrib/cmake/BuildXalanC.cmake @@ -0,0 +1,31 @@ +# see http://www.kitware.com/products/html/BuildingExternalProjectsWithCMake2.8.html +# see http://tools.cinemapub.be/opendcp/opendcp-0.19-src/contrib/CMakeLists.txt + +# not functional yet + +include(ExternalProject) +if (UNIX) + externalproject_add(xalan-c + URL http://ftp.halifax.rwth-aachen.de/apache/xalan/xalan-c/sources/xalan_c-1.11-src.tar.gz + URL_MD5 9227d3e7ab375da3c643934b33a585b8 + BUILD_IN_SOURCE 0 + PREFIX ${CMAKE_BINARY_DIR}/deps/xalan-c + CONFIGURE_COMMAND + "/c/configure" + "--enable-static" + "--prefix=" + ) + + set(XALANC_INCLUDE_DIR ${CMAKE_BINARY_DIR}/deps/xalan-c/include) + + if (APPLE) + set(XALANC_LIBRARY ${CMAKE_BINARY_DIR}/deps/xalan-c/lib/xalan-c.a) + elseif(UNIX) + set(XALANC_LIBRARY ${CMAKE_BINARY_DIR}/deps/xalan-c/lib/xalan-c.a) + elseif(WIN32) + set(XALANC_LIBRARY ${CMAKE_BINARY_DIR}/deps/xalan-c/lib/xalan-c.lib) + else() + message(FATAL_ERROR "Unknown platform!") + endif() + +endif() \ No newline at end of file diff --git a/contrib/cmake/BuildXercesC.cmake b/contrib/cmake/BuildXercesC.cmake new file mode 100644 index 0000000..a0d6bc9 --- /dev/null +++ b/contrib/cmake/BuildXercesC.cmake @@ -0,0 +1,79 @@ +# see http://www.kitware.com/products/html/BuildingExternalProjectsWithCMake2.8.html +# see http://tools.cinemapub.be/opendcp/opendcp-0.19-src/contrib/CMakeLists.txt + +include(ExternalProject) +if (UNIX) + externalproject_add(xerces-c + URL http://ftp.halifax.rwth-aachen.de/apache/xerces/c/3/sources/xerces-c-3.1.3.tar.gz + URL_MD5 70320ab0e3269e47d978a6ca0c0e1e2d + BUILD_IN_SOURCE 0 + PREFIX ${CMAKE_BINARY_DIR}/deps/xerces-c + CONFIGURE_COMMAND + "/configure" + "--enable-static" + "--prefix=" + ) +elseif(WIN32) + set(VC_VERSION VC12) + # see https://en.wikipedia.org/wiki/Visual_C%2B%2B + + # CMAKE_CXX_COMPILER_VERSION=16.0.40219.1 + # MSVC_VERSION=1600 + + if (OFF) + elseif(MSVC_VERSION LESS 1310) + message(FATAL_ERROR "MSVC 7.1 or higher is required") + elseif(MSVC_VERSION LESS 1400) + set(VC_VERSION VC7.1) + elseif(MSVC_VERSION LESS 1500) + set(VC_VERSION VC8) + elseif(MSVC_VERSION LESS 1600) + set(VC_VERSION VC9) + elseif(MSVC_VERSION LESS 1700) + set(VC_VERSION VC10) + elseif(MSVC_VERSION LESS 1800) + set(VC_VERSION VC11) + elseif (MSVC_VERSION LESS 1900) + set(VC_VERSION VC12) + endif() + + set(VSPROJECT_PATH "projects/Win32/${VC_VERSION}/xerces-all/XercesLib") + + if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + externalproject_add(xerces-c + URL http://ftp.halifax.rwth-aachen.de/apache/xerces/c/3/sources/xerces-c-3.1.3.tar.gz + URL_MD5 70320ab0e3269e47d978a6ca0c0e1e2d + BUILD_IN_SOURCE 1 + PREFIX ${CMAKE_BINARY_DIR}/deps/xerces-c + CONFIGURE_COMMAND "" + BUILD_COMMAND cd ${VSPROJECT_PATH} && msbuild /p:Configuration=Release /p:Platform=x64 /t:build XercesLib.vcxproj + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory Build/x64/${VC_VERSION}/Release/ ${CMAKE_BINARY_DIR}/deps/xerces-c/ + ) + else() + externalproject_add(xerces-c + URL http://ftp.halifax.rwth-aachen.de/apache/xerces/c/3/sources/xerces-c-3.1.3.tar.gz + URL_MD5 70320ab0e3269e47d978a6ca0c0e1e2d + BUILD_IN_SOURCE 1 + PREFIX ${CMAKE_BINARY_DIR}/deps/xerces-c + CONFIGURE_COMMAND "" + BUILD_COMMAND cd ${VSPROJECT_PATH} && msbuild /p:Configuration=Release /p:Platform=Win32 /t:build XercesLib.vcxproj + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory Build/Win32/${VC_VERSION}/Release/ ${CMAKE_BINARY_DIR}/deps/xerces-c/lib/ && ${CMAKE_COMMAND} -E copy_directory src/ ${CMAKE_BINARY_DIR}/deps/xerces-c/include/ + ) + endif() +endif() + +# TODO: --with-curl=DIR + +set(XercesC_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/deps/xerces-c/include) + +if (APPLE) + set(XercesC_LIBRARIES ${CMAKE_BINARY_DIR}/deps/xerces-c/lib/libxerces-c.dylib) +elseif(UNIX) + set(XercesC_LIBRARIES ${CMAKE_BINARY_DIR}/deps/xerces-c/lib/libxerces-c.so) +elseif(WIN32) + set(XercesC_LIBRARIES ${CMAKE_BINARY_DIR}/deps/xerces-c/lib/xerces-c_3.lib) +else() + message(FATAL_ERROR "Unknown platform!") +endif() + +SET(XercesC_BUILT ON) diff --git a/contrib/cmake/FindLibEvent.cmake b/contrib/cmake/FindLibEvent.cmake new file mode 100644 index 0000000..47872fe --- /dev/null +++ b/contrib/cmake/FindLibEvent.cmake @@ -0,0 +1,83 @@ +FIND_PATH(LIBEVENT_INCLUDE_DIR event2/event.h + PATH_SUFFIXES include + PATHS + /usr/local + /usr + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt + HINTS $ENV{LIBEVENT_SRC} +) + +FIND_LIBRARY(LIBEVENT_LIBRARY_RELEASE + NAMES event libevent + HINTS $ENV{LIBEVENT_SRC}/.libs/ +) +if (LIBEVENT_LIBRARY_RELEASE) + list(APPEND LIBEVENT_LIBRARIES optimized ${LIBEVENT_LIBRARY_RELEASE}) +endif() + +FIND_LIBRARY(LIBEVENT_LIBRARY_DEBUG + NAMES event_d libevent_d + HINTS $ENV{LIBEVENT_SRC}/.libs/ +) +if (LIBEVENT_LIBRARY_DEBUG) + list(APPEND LIBEVENT_LIBRARIES debug ${LIBEVENT_LIBRARY_DEBUG}) +else() + if (LIBEVENT_LIBRARY_RELEASE) + list(APPEND LIBEVENT_LIBRARIES debug ${LIBEVENT_LIBRARY_RELEASE}) + endif() +endif() + + + +FIND_LIBRARY(LIBEVENT_SSL_LIBRARY_RELEASE + NAMES event_openssl libevent_openssl + HINTS $ENV{LIBEVENT_SRC}/.libs/ +) +if (LIBEVENT_SSL_LIBRARY_RELEASE) + list(APPEND LIBEVENT_LIBRARIES optimized ${LIBEVENT_SSL_LIBRARY_RELEASE}) + SET(LIBEVENT_SSL_FOUND ON) +endif() + +FIND_LIBRARY(LIBEVENT_SSL_LIBRARY_DEBUG + NAMES event_openssl_d libevent_openssl_d + HINTS $ENV{LIBEVENT_SRC}/.libs/ +) +if (LIBEVENT_SSL_LIBRARY_DEBUG) + list(APPEND LIBEVENT_LIBRARIES debug ${LIBEVENT_SSL_LIBRARY_DEBUG}) +else() + if (LIBEVENT_SSL_LIBRARY_RELEASE) + list(APPEND LIBEVENT_LIBRARIES debug ${LIBEVENT_SSL_LIBRARY_RELEASE}) + endif() +endif() + + + +if (NOT WIN32) + FIND_LIBRARY(LIBEVENT_LIBRARY_THREADS + NAMES event_pthreads + HINTS $ENV{EVENT_SRC}/.libs/ + ) + list (APPEND LIBEVENT_LIBRARIES ${LIBEVENT_LIBRARY_THREADS}) + + FIND_LIBRARY(LIBEVENT_LIBRARY_EXTRA + NAMES event_extra + HINTS $ENV{LIBEVENT_SRC}/.libs/ + ) + list (APPEND LIBEVENT_LIBRARIES ${LIBEVENT_LIBRARY_EXTRA}) + + FIND_LIBRARY(LIBEVENT_LIBRARY_CORE + NAMES event_core + HINTS $ENV{EVENT_SRC}/.libs/ + ) + list (APPEND LIBEVENT_LIBRARIES ${LIBEVENT_LIBRARY_CORE}) + +endif() + +#message(FATAL_ERROR "EVENT_SSL_FOUND: ${EVENT_SSL_FOUND}") + +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBEVENT DEFAULT_MSG LIBEVENT_LIBRARIES LIBEVENT_INCLUDE_DIR) +MARK_AS_ADVANCED(LIBEVENT_LIBRARIES LIBEVENT_INCLUDE_DIR LIBEVENT_SSL_FOUND) diff --git a/test/ctest/scripts/run_generated_test.cmake b/test/ctest/scripts/run_generated_test.cmake new file mode 100644 index 0000000..66fb2c0 --- /dev/null +++ b/test/ctest/scripts/run_generated_test.cmake @@ -0,0 +1,111 @@ +# convert given file to promela and run spin + +set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/contrib/cmake) +include("${CMAKE_MODULE_PATH}/FileInformation.cmake") + +get_filename_component(TEST_FILE_NAME ${TESTFILE} NAME) +execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${OUTDIR}) + + +# message(FATAL_ERROR "PROJECT_BINARY_DIR: ${PROJECT_BINARY_DIR}") + +if (${TARGETLANG} STREQUAL "vhdl") + find_program(GHDL ghdl) + + execute_process(COMMAND time -p ${USCXML_TRANSFORM_BIN} -t${TARGETLANG} -i ${TESTFILE} -o ${OUTDIR}/${TEST_FILE_NAME}.machine.vhdl RESULT_VARIABLE CMD_RESULT) + if(CMD_RESULT) + message(FATAL_ERROR "Error running ${USCXML_TRANSFORM_BIN}: ${CMD_RESULT}") + endif() + message(STATUS "time for transforming to VHDL machine") + + message(STATUS "${GHDL} -a ${OUTDIR}/${TEST_FILE_NAME}.machine.vhdl") + execute_process( + COMMAND time -p ${GHDL} -a ${OUTDIR}/${TEST_FILE_NAME}.machine.vhdl + WORKING_DIRECTORY ${OUTDIR} RESULT_VARIABLE CMD_RESULT) + if(CMD_RESULT) + message(FATAL_ERROR "Error running ghdl ${GHDL}: ${CMD_RESULT}") + endif() + message(STATUS "time for transforming to binary") + +elseif (${TARGETLANG} STREQUAL "c") + + message(STATUS "${USCXML_TRANSFORM_BIN} -t${TARGETLANG} -i ${TESTFILE} -o ${OUTDIR}/${TEST_FILE_NAME}.machine.c") + execute_process(COMMAND time -p ${USCXML_TRANSFORM_BIN} -t${TARGETLANG} -i ${TESTFILE} -o ${OUTDIR}/${TEST_FILE_NAME}.machine.c RESULT_VARIABLE CMD_RESULT) + if(CMD_RESULT) + message(FATAL_ERROR "Error running ${USCXML_TRANSFORM_BIN}: ${CMD_RESULT}") + endif() + message(STATUS "time for transforming to c machine") + + # set(COMPILE_CMD_OBJ + # "-c" "${OUTDIR}/${TEST_FILE_NAME}.machine.c" + # "-o" "${OUTDIR}/${TEST_FILE_NAME}.machine.c.o" + # "-Ofast" "-ansi" "-m16") + # + # message(STATUS "${CC_BIN} ${COMPILE_CMD_OBJ}") + # execute_process( + # COMMAND time -p ${CC_BIN} ${COMPILE_CMD_OBJ} + # WORKING_DIRECTORY ${OUTDIR} RESULT_VARIABLE CMD_RESULT) + # if(CMD_RESULT) + # message(FATAL_ERROR "Error running gcc ${CC_BIN}: ${CMD_RESULT}") + # endif() + # file (SIZE "${OUTDIR}/${TEST_FILE_NAME}.machine.c.o" BINARY_SIZE) + # message("Size of compiled unit optimized for speed: ${BINARY_SIZE}") + # + # set(COMPILE_CMD_OBJ + # "-c" "${OUTDIR}/${TEST_FILE_NAME}.machine.c" + # "-o" "${OUTDIR}/${TEST_FILE_NAME}.machine.c.o" + # "-Os" "-ansi" "-m16") + # + # message(STATUS "${CC_BIN} ${COMPILE_CMD_OBJ}") + # execute_process( + # COMMAND time -p ${CC_BIN} ${COMPILE_CMD_OBJ} + # WORKING_DIRECTORY ${OUTDIR} RESULT_VARIABLE CMD_RESULT) + # if(CMD_RESULT) + # message(FATAL_ERROR "Error running gcc ${CC_BIN}: ${CMD_RESULT}") + # endif() + # file (SIZE "${OUTDIR}/${TEST_FILE_NAME}.machine.c.o" BINARY_SIZE) + # message("Size of compiled unit optimized for size: ${BINARY_SIZE}") + + set(COMPILE_CMD_BIN + "-O0" + "-std=c++11" + "-Wl,-search_paths_first" + "-Wl,-headerpad_max_install_names" + "-o" "${OUTDIR}/${TEST_FILE_NAME}" + "-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" + "-L${PROJECT_BINARY_DIR}/deps/xerces-c/lib" + "-luscxml" + "-lxerces-c" + "-include" "${OUTDIR}/${TEST_FILE_NAME}.machine.c" + "-I${PROJECT_SOURCE_DIR}/contrib/src" + "-I${PROJECT_SOURCE_DIR}/src" + "-I${PROJECT_BINARY_DIR}" + "-I${XercesC_INCLUDE_DIRS}" + "-I${URIPARSER_INCLUDE_DIR}" + "-I${LIBEVENT_INCLUDE_DIR}" + "-Wl,-rpath,${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" + "-DAUTOINCLUDE_TEST=ON" + "${SCAFFOLDING_FOR_GENERATED_C}") + + message(STATUS "${CXX_BIN} ${COMPILE_CMD_BIN}") + execute_process( + COMMAND time -p ${CXX_BIN} ${COMPILE_CMD_BIN} + WORKING_DIRECTORY ${OUTDIR} RESULT_VARIABLE CMD_RESULT) + if(CMD_RESULT) + message(FATAL_ERROR "Error running g++ ${CXX_BIN}: ${CMD_RESULT}") + endif() + message(STATUS "time for transforming to binary") + + message(STATUS "${OUTDIR}/${TEST_FILE_NAME}") + execute_process( + COMMAND time -p ${OUTDIR}/${TEST_FILE_NAME} + WORKING_DIRECTORY ${OUTDIR} + RESULT_VARIABLE CMD_RESULT) + if(CMD_RESULT) + message(FATAL_ERROR "Error running generated c test: ${CMD_RESULT}") + endif() + message(STATUS "time for execution") +endif() + +# message(STATUS "${TEST_OUT}") +# file(WRITE ${OUTDIR}/${TEST_FILE_NAME}.pml.out ${TEST_OUT}) \ No newline at end of file diff --git a/test/ctest/scripts/run_header_compiles.cmake b/test/ctest/scripts/run_header_compiles.cmake new file mode 100644 index 0000000..e60ef0e --- /dev/null +++ b/test/ctest/scripts/run_header_compiles.cmake @@ -0,0 +1,21 @@ +# minimize SCXML document and run +get_filename_component(TEST_FILE_NAME ${TESTFILE} NAME) + +set(COMPILE_CMD_BIN +"-c" +"-I${PROJECT_SOURCE_DIR}/contrib/src" +"-I${PROJECT_BINARY_DIR}/deps/xerces-c/include" +"-I${PROJECT_BINARY_DIR}/deps/libevent/include" +"-I${PROJECT_BINARY_DIR}/deps/uriparser/include" +"-I${PROJECT_SOURCE_DIR}/contrib/src/evws" +"-I${CMAKE_BINARY_DIR}" +"-I${PROJECT_BINARY_DIR}" +"-I${PROJECT_SOURCE_DIR}/src" +"${TESTFILE}") + +execute_process(COMMAND ${CXX_BIN} ${COMPILE_CMD_BIN} RESULT_VARIABLE CMD_RESULT) +if(CMD_RESULT) + message(FATAL_ERROR "Error running ${CXX_BIN}") +endif() + + diff --git a/test/ctest/scripts/run_promela_test.cmake b/test/ctest/scripts/run_promela_test.cmake new file mode 100644 index 0000000..818cf66 --- /dev/null +++ b/test/ctest/scripts/run_promela_test.cmake @@ -0,0 +1,38 @@ +# convert given file to promela and run spin + +get_filename_component(TEST_FILE_NAME ${TESTFILE} NAME) +execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${OUTDIR}) + +set(ENV{USCXML_PROMELA_TRANSITION_TRACE} "TRUE") +set(ENV{USCXML_PROMELA_TRANSITION_DEBUG} "TRUE") + +message(STATUS "${USCXML_TRANSFORM_BIN} -tpml -i ${TESTFILE} -o ${OUTDIR}/${TEST_FILE_NAME}.pml") +execute_process(COMMAND time -p ${USCXML_TRANSFORM_BIN} -tpml -i ${TESTFILE} -o ${OUTDIR}/${TEST_FILE_NAME}.pml RESULT_VARIABLE CMD_RESULT) +if(CMD_RESULT) + message(FATAL_ERROR "Error running ${USCXML_TRANSFORM_BIN}: ${CMD_RESULT}") +endif() +message(STATUS "time for transforming to promela") + +message(STATUS "${SPIN_BIN} -a ${OUTDIR}/${TEST_FILE_NAME}.pml") +execute_process(COMMAND time -p ${SPIN_BIN} -a ${OUTDIR}/${TEST_FILE_NAME}.pml WORKING_DIRECTORY ${OUTDIR} RESULT_VARIABLE CMD_RESULT) +if(CMD_RESULT) + message(FATAL_ERROR "Error running spin ${SPIN_BIN}: ${CMD_RESULT}") +endif() +message(STATUS "time for transforming to c") + +message(STATUS "${CXX_BIN} -DMEMLIM=1024 -DVECTORSZ=8192 -O2 -DXUSAFE -w -o ${OUTDIR}/pan ${OUTDIR}/pan.c") +execute_process(COMMAND time -p ${CXX_BIN} -DMEMLIM=1024 -DVECTORSZ=8192 -O2 -DXUSAFE -w -o ${OUTDIR}/pan ${OUTDIR}/pan.c WORKING_DIRECTORY ${OUTDIR} RESULT_VARIABLE CMD_RESULT) +if(CMD_RESULT) + message(FATAL_ERROR "Error running gcc ${CXX_BIN}: ${CMD_RESULT}") +endif() +message(STATUS "time for transforming to binary") + +message(STATUS "${OUTDIR}/pan -m10000 -a") +execute_process(COMMAND time -p ${OUTDIR}/pan -m10000 -a WORKING_DIRECTORY ${OUTDIR} RESULT_VARIABLE CMD_RESULT) +if(CMD_RESULT) + message(FATAL_ERROR "Error running pan: ${CMD_RESULT}") +endif() +message(STATUS "time for verification") + +# message(STATUS "${TEST_OUT}") +# file(WRITE ${OUTDIR}/${TEST_FILE_NAME}.pml.out ${TEST_OUT}) \ No newline at end of file -- cgit v0.12