commit
1bac40f3e7
@ -1,6 +1,8 @@
|
|||||||
INCLUDE(Platform/Linux-Intel)
|
INCLUDE(Platform/Linux-Intel)
|
||||||
IF(XIAR)
|
IF(XIAR)
|
||||||
SET(CMAKE_C_CREATE_STATIC_LIBRARY
|
# INTERPROCEDURAL_OPTIMIZATION
|
||||||
|
SET(CMAKE_C_COMPILE_OPTIONS_IPO -ipo)
|
||||||
|
SET(CMAKE_C_CREATE_STATIC_LIBRARY_IPO
|
||||||
"${XIAR} cr <TARGET> <LINK_FLAGS> <OBJECTS> "
|
"${XIAR} cr <TARGET> <LINK_FLAGS> <OBJECTS> "
|
||||||
"${XIAR} -s <TARGET> ")
|
"${XIAR} -s <TARGET> ")
|
||||||
ENDIF(XIAR)
|
ENDIF(XIAR)
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
INCLUDE(Platform/Linux-Intel)
|
INCLUDE(Platform/Linux-Intel)
|
||||||
IF(XIAR)
|
IF(XIAR)
|
||||||
SET(CMAKE_CXX_CREATE_STATIC_LIBRARY
|
# INTERPROCEDURAL_OPTIMIZATION
|
||||||
|
SET(CMAKE_CXX_COMPILE_OPTIONS_IPO -ipo)
|
||||||
|
SET(CMAKE_CXX_CREATE_STATIC_LIBRARY_IPO
|
||||||
"${XIAR} cr <TARGET> <LINK_FLAGS> <OBJECTS> "
|
"${XIAR} cr <TARGET> <LINK_FLAGS> <OBJECTS> "
|
||||||
"${XIAR} -s <TARGET> ")
|
"${XIAR} -s <TARGET> ")
|
||||||
ENDIF(XIAR)
|
ENDIF(XIAR)
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
if(NOT XIAR)
|
if(NOT XIAR)
|
||||||
set(_intel_xair_hints)
|
set(_intel_xiar_hints)
|
||||||
foreach(lang C CXX Fortran)
|
foreach(lang C CXX Fortran)
|
||||||
if(IS_ABSOLUTE "${CMAKE_${lang}_COMPILER}")
|
if(IS_ABSOLUTE "${CMAKE_${lang}_COMPILER}")
|
||||||
get_filename_component(_hint "${CMAKE_${lang}_COMPILER}" PATH)
|
get_filename_component(_hint "${CMAKE_${lang}_COMPILER}" PATH)
|
||||||
list(APPEND _intel_xair_hints ${_hint})
|
list(APPEND _intel_xiar_hints ${_hint})
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
find_program(XIAR NAMES xiar HINTS ${_intel_xair_hints})
|
find_program(XIAR NAMES xiar HINTS ${_intel_xiar_hints})
|
||||||
mark_as_advanced(XIAR)
|
mark_as_advanced(XIAR)
|
||||||
endif(NOT XIAR)
|
endif(NOT XIAR)
|
||||||
|
@ -0,0 +1,2 @@
|
|||||||
|
include(Platform/Windows-Borland)
|
||||||
|
__borland_language(C)
|
@ -0,0 +1,2 @@
|
|||||||
|
include(Platform/Windows-Borland)
|
||||||
|
__borland_language(CXX)
|
@ -0,0 +1,121 @@
|
|||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
# Copyright 2002-2009 Kitware, Inc.
|
||||||
|
#
|
||||||
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
|
#=============================================================================
|
||||||
|
# (To distributed this file outside of CMake, substitute the full
|
||||||
|
# License text for the above reference.)
|
||||||
|
|
||||||
|
# This module is shared by multiple languages; use include blocker.
|
||||||
|
if(__WINDOWS_BORLAND)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
set(__WINDOWS_BORLAND 1)
|
||||||
|
|
||||||
|
SET(BORLAND 1)
|
||||||
|
|
||||||
|
# Borland target type flags (bcc32 -h -t):
|
||||||
|
# -tW GUI App (implies -U__CONSOLE__)
|
||||||
|
# -tWC Console App (implies -D__CONSOLE__=1)
|
||||||
|
# -tWD Build a DLL (implies -D__DLL__=1 -D_DLL=1)
|
||||||
|
# -tWM Enable threads (implies -D__MT__=1 -D_MT=1)
|
||||||
|
# -tWR Use DLL runtime (implies -D_RTLDLL, and '-tW' too!!)
|
||||||
|
#
|
||||||
|
# Notes:
|
||||||
|
# - The flags affect linking so we pass them to the linker.
|
||||||
|
# - The flags affect preprocessing so we pass them to the compiler.
|
||||||
|
# - Since '-tWR' implies '-tW' we use '-tWR -tW-' instead.
|
||||||
|
# - Since '-tW-' disables '-tWD' we use '-tWR -tW- -tWD' for DLLs.
|
||||||
|
set(_RTLDLL "-tWR -tW-")
|
||||||
|
set(_COMPILE_C "-c")
|
||||||
|
set(_COMPILE_CXX "-P -c")
|
||||||
|
|
||||||
|
SET(CMAKE_LIBRARY_PATH_FLAG "-L")
|
||||||
|
SET(CMAKE_LINK_LIBRARY_FLAG "")
|
||||||
|
|
||||||
|
SET(CMAKE_FIND_LIBRARY_SUFFIXES "-bcc.lib" ".lib")
|
||||||
|
|
||||||
|
# uncomment these out to debug makefiles
|
||||||
|
#SET(CMAKE_START_TEMP_FILE "")
|
||||||
|
#SET(CMAKE_END_TEMP_FILE "")
|
||||||
|
#SET(CMAKE_VERBOSE_MAKEFILE 1)
|
||||||
|
|
||||||
|
# Borland cannot handle + in the file name, so mangle object file name
|
||||||
|
SET (CMAKE_MANGLE_OBJECT_FILE_NAMES "ON")
|
||||||
|
|
||||||
|
# extra flags for a win32 exe
|
||||||
|
SET(CMAKE_CREATE_WIN32_EXE "-tW" )
|
||||||
|
# extra flags for a console app
|
||||||
|
SET(CMAKE_CREATE_CONSOLE_EXE "-tWC" )
|
||||||
|
|
||||||
|
SET (CMAKE_BUILD_TYPE Debug CACHE STRING
|
||||||
|
"Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel.")
|
||||||
|
|
||||||
|
SET (CMAKE_EXE_LINKER_FLAGS_INIT "-tWM -lS:10000000 -lSc:10000000 ")
|
||||||
|
SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "-v")
|
||||||
|
SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "-v")
|
||||||
|
SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT})
|
||||||
|
SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT})
|
||||||
|
SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT})
|
||||||
|
SET (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT})
|
||||||
|
SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT})
|
||||||
|
SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT})
|
||||||
|
|
||||||
|
macro(__borland_language lang)
|
||||||
|
set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-tWD")
|
||||||
|
|
||||||
|
# compile a source file into an object file
|
||||||
|
# place <DEFINES> outside the response file because Borland refuses
|
||||||
|
# to parse quotes from the response file.
|
||||||
|
set(CMAKE_${lang}_COMPILE_OBJECT
|
||||||
|
"<CMAKE_${lang}_COMPILER> ${_RTLDLL} <DEFINES> ${CMAKE_START_TEMP_FILE}-DWIN32 -o<OBJECT> <FLAGS> ${_COMPILE_${lang}} <SOURCE>${CMAKE_END_TEMP_FILE}"
|
||||||
|
)
|
||||||
|
|
||||||
|
set(CMAKE_${lang}_LINK_EXECUTABLE
|
||||||
|
"<CMAKE_${lang}_COMPILER> ${_RTLDLL} -e<TARGET> ${CMAKE_START_TEMP_FILE}<LINK_FLAGS> <FLAGS> <LINK_LIBRARIES> <OBJECTS>${CMAKE_END_TEMP_FILE}"
|
||||||
|
# "implib -c -w <TARGET_IMPLIB> <TARGET>"
|
||||||
|
)
|
||||||
|
|
||||||
|
# place <DEFINES> outside the response file because Borland refuses
|
||||||
|
# to parse quotes from the response file.
|
||||||
|
set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE
|
||||||
|
"cpp32 <DEFINES> ${CMAKE_START_TEMP_FILE}-DWIN32 <FLAGS> -o<PREPROCESSED_SOURCE> ${_COMPILE_${lang}} <SOURCE>${CMAKE_END_TEMP_FILE}"
|
||||||
|
)
|
||||||
|
# Borland >= 5.6 allows -P option for cpp32, <= 5.5 does not
|
||||||
|
|
||||||
|
# Create a module library.
|
||||||
|
set(CMAKE_${lang}_CREATE_SHARED_MODULE
|
||||||
|
"<CMAKE_${lang}_COMPILER> ${_RTLDLL} -tWD ${CMAKE_START_TEMP_FILE}-e<TARGET> <LINK_FLAGS> <LINK_LIBRARIES> <OBJECTS>${CMAKE_END_TEMP_FILE}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create an import library for another target.
|
||||||
|
set(CMAKE_${lang}_CREATE_IMPORT_LIBRARY
|
||||||
|
"implib -c -w <TARGET_IMPLIB> <TARGET>"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create a shared library.
|
||||||
|
# First create a module and then its import library.
|
||||||
|
set(CMAKE_${lang}_CREATE_SHARED_LIBRARY
|
||||||
|
${CMAKE_${lang}_CREATE_SHARED_MODULE}
|
||||||
|
${CMAKE_${lang}_CREATE_IMPORT_LIBRARY}
|
||||||
|
)
|
||||||
|
|
||||||
|
# create a static library
|
||||||
|
set(CMAKE_${lang}_CREATE_STATIC_LIBRARY
|
||||||
|
"tlib ${CMAKE_START_TEMP_FILE}/p512 <LINK_FLAGS> /a <TARGET_QUOTED> <OBJECTS>${CMAKE_END_TEMP_FILE}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Initial configuration flags.
|
||||||
|
set(CMAKE_${lang}_FLAGS_INIT "-tWM")
|
||||||
|
set(CMAKE_${lang}_FLAGS_DEBUG_INIT "-Od -v")
|
||||||
|
set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "-O1 -DNDEBUG")
|
||||||
|
set(CMAKE_${lang}_FLAGS_RELEASE_INIT "-O2 -DNDEBUG")
|
||||||
|
set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "-Od")
|
||||||
|
set(CMAKE_${lang}_STANDARD_LIBRARIES_INIT "import32.lib")
|
||||||
|
endmacro()
|
@ -1,128 +0,0 @@
|
|||||||
# Borland shared library issues:
|
|
||||||
# When building dll's with borland, the run time dll c/c++ library from
|
|
||||||
# borland must be used. This is specified with the -tWR compiler option.
|
|
||||||
# This flag must be present during compilation of c and c++ files and
|
|
||||||
# for the linking of exe and dll files. But wait, there is more,
|
|
||||||
# the -tWR flag must come after the -tWD and -tWM flags, but before the -tWC flag.
|
|
||||||
# Order counts, so be careful!
|
|
||||||
# if building static, you don't want the -tWR flag as it will make your program
|
|
||||||
# depend on the borland run time dll.
|
|
||||||
# So, if a project has CMAKE_BUILD_SHARED on, then the -tWR flag is added all over, and
|
|
||||||
# it is left out if not.
|
|
||||||
|
|
||||||
SET(CMAKE_LIBRARY_PATH_FLAG "-L")
|
|
||||||
SET(CMAKE_LINK_LIBRARY_FLAG "")
|
|
||||||
SET(CMAKE_SHARED_BUILD_CXX_FLAGS "-tWR")
|
|
||||||
SET(CMAKE_SHARED_BUILD_C_FLAGS "-tWR")
|
|
||||||
SET(BORLAND 1)
|
|
||||||
|
|
||||||
SET(CMAKE_FIND_LIBRARY_SUFFIXES "-bcc.lib" ".lib")
|
|
||||||
|
|
||||||
# uncomment these out to debug makefiles
|
|
||||||
#SET(CMAKE_START_TEMP_FILE "")
|
|
||||||
#SET(CMAKE_END_TEMP_FILE "")
|
|
||||||
#SET(CMAKE_VERBOSE_MAKEFILE 1)
|
|
||||||
|
|
||||||
# Borland cannot handle + in the file name, so mangle object file name
|
|
||||||
SET (CMAKE_MANGLE_OBJECT_FILE_NAMES "ON")
|
|
||||||
|
|
||||||
# Create an import library for another target.
|
|
||||||
SET(CMAKE_CXX_CREATE_IMPORT_LIBRARY
|
|
||||||
"implib -c -w <TARGET_IMPLIB> <TARGET>"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Create a C++ module library.
|
|
||||||
SET(CMAKE_CXX_CREATE_SHARED_MODULE
|
|
||||||
"<CMAKE_CXX_COMPILER> ${CMAKE_START_TEMP_FILE}-e<TARGET> -tWD <LINK_FLAGS> -tWR <LINK_LIBRARIES> <OBJECTS>${CMAKE_END_TEMP_FILE}"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Create a C++ shared library.
|
|
||||||
# First create a module and then its import library.
|
|
||||||
SET(CMAKE_CXX_CREATE_SHARED_LIBRARY
|
|
||||||
${CMAKE_CXX_CREATE_SHARED_MODULE}
|
|
||||||
${CMAKE_CXX_CREATE_IMPORT_LIBRARY})
|
|
||||||
|
|
||||||
# Create an import library for another target.
|
|
||||||
SET(CMAKE_C_CREATE_IMPORT_LIBRARY ${CMAKE_CXX_CREATE_IMPORT_LIBRARY})
|
|
||||||
|
|
||||||
# Create a C module library.
|
|
||||||
SET(CMAKE_C_CREATE_SHARED_MODULE
|
|
||||||
"<CMAKE_C_COMPILER> ${CMAKE_START_TEMP_FILE}-e<TARGET> -tWD <LINK_FLAGS> -tWR <LINK_LIBRARIES> <OBJECTS>${CMAKE_END_TEMP_FILE}"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Create a C shared library.
|
|
||||||
# First create a module and then its import library.
|
|
||||||
SET(CMAKE_C_CREATE_SHARED_LIBRARY
|
|
||||||
${CMAKE_C_CREATE_SHARED_MODULE}
|
|
||||||
${CMAKE_C_CREATE_IMPORT_LIBRARY})
|
|
||||||
|
|
||||||
# create a C++ static library
|
|
||||||
SET(CMAKE_CXX_CREATE_STATIC_LIBRARY "tlib ${CMAKE_START_TEMP_FILE}/p512 <LINK_FLAGS> /a <TARGET_QUOTED> <OBJECTS>${CMAKE_END_TEMP_FILE}")
|
|
||||||
|
|
||||||
# create a C static library
|
|
||||||
SET(CMAKE_C_CREATE_STATIC_LIBRARY ${CMAKE_CXX_CREATE_STATIC_LIBRARY})
|
|
||||||
|
|
||||||
# compile a C++ file into an object file
|
|
||||||
# place <DEFINES> outside the response file because Borland refuses
|
|
||||||
# to parse quotes from the response file.
|
|
||||||
SET(CMAKE_CXX_COMPILE_OBJECT
|
|
||||||
"<CMAKE_CXX_COMPILER> <DEFINES> ${CMAKE_START_TEMP_FILE}-DWIN32 -P <FLAGS> -o<OBJECT> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
|
|
||||||
|
|
||||||
# compile a C file into an object file
|
|
||||||
# place <DEFINES> outside the response file because Borland refuses
|
|
||||||
# to parse quotes from the response file.
|
|
||||||
SET(CMAKE_C_COMPILE_OBJECT
|
|
||||||
"<CMAKE_C_COMPILER> <DEFINES> ${CMAKE_START_TEMP_FILE}-DWIN32 -o<OBJECT> <FLAGS> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
|
|
||||||
|
|
||||||
|
|
||||||
SET(CMAKE_C_LINK_EXECUTABLE
|
|
||||||
"<CMAKE_C_COMPILER> ${CMAKE_START_TEMP_FILE}-e<TARGET> <LINK_FLAGS> <FLAGS> <LINK_LIBRARIES> <OBJECTS> ${CMAKE_END_TEMP_FILE}"
|
|
||||||
# "implib -c -w <TARGET_IMPLIB> <TARGET>"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
SET(CMAKE_CXX_LINK_EXECUTABLE
|
|
||||||
"<CMAKE_CXX_COMPILER> ${CMAKE_START_TEMP_FILE} <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> -e<TARGET> <FLAGS> <LINK_LIBRARIES> <OBJECTS> ${CMAKE_END_TEMP_FILE}"
|
|
||||||
# "implib -c -w <TARGET_IMPLIB> <TARGET>"
|
|
||||||
)
|
|
||||||
|
|
||||||
SET (CMAKE_BUILD_TYPE Debug CACHE STRING
|
|
||||||
"Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel.")
|
|
||||||
|
|
||||||
# extra flags for a win32 exe
|
|
||||||
SET(CMAKE_CREATE_WIN32_EXE "-tW -tWM" )
|
|
||||||
# extra flags for a console app
|
|
||||||
SET(CMAKE_CREATE_CONSOLE_EXE "-tWC" )
|
|
||||||
|
|
||||||
SET (CMAKE_CXX_FLAGS_INIT "-tWM")
|
|
||||||
SET (CMAKE_CXX_FLAGS_DEBUG_INIT "-Od -v")
|
|
||||||
SET (CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-O1 -DNDEBUG")
|
|
||||||
SET (CMAKE_CXX_FLAGS_RELEASE_INIT "-O2 -DNDEBUG")
|
|
||||||
SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-Od")
|
|
||||||
SET (CMAKE_C_FLAGS_INIT "-tWM")
|
|
||||||
SET (CMAKE_C_FLAGS_DEBUG_INIT "-Od -v")
|
|
||||||
SET (CMAKE_C_FLAGS_MINSIZEREL_INIT "-O1 -DNDEBUG")
|
|
||||||
SET (CMAKE_C_FLAGS_RELEASE_INIT "-O2 -DNDEBUG")
|
|
||||||
SET (CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-Od")
|
|
||||||
|
|
||||||
SET (CMAKE_EXE_LINKER_FLAGS_INIT "-tWM -lS:10000000 -lSc:10000000 ")
|
|
||||||
SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "-v")
|
|
||||||
SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "-v")
|
|
||||||
SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT})
|
|
||||||
SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT})
|
|
||||||
SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT})
|
|
||||||
SET (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT})
|
|
||||||
SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT})
|
|
||||||
SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT})
|
|
||||||
|
|
||||||
SET (CMAKE_C_STANDARD_LIBRARIES_INIT "import32.lib")
|
|
||||||
SET (CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}")
|
|
||||||
|
|
||||||
# preprocess C and CXX files
|
|
||||||
# place <DEFINES> outside the response file because Borland refuses
|
|
||||||
# to parse quotes from the response file.
|
|
||||||
SET (CMAKE_C_CREATE_PREPROCESSED_SOURCE
|
|
||||||
"cpp32 <DEFINES> ${CMAKE_START_TEMP_FILE}-DWIN32 <FLAGS> -o<PREPROCESSED_SOURCE> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
|
|
||||||
SET (CMAKE_CXX_CREATE_PREPROCESSED_SOURCE
|
|
||||||
"cpp32 <DEFINES> ${CMAKE_START_TEMP_FILE}-DWIN32 <FLAGS> -o<PREPROCESSED_SOURCE> -P -c <SOURCE>${CMAKE_END_TEMP_FILE}")
|
|
||||||
# Borland >= 5.6 allows -P option for cpp32, <= 5.5 does not
|
|
@ -1,12 +1,2 @@
|
|||||||
# kFreeBSD looks just like Linux.
|
# kFreeBSD looks just like Linux.
|
||||||
SET(CMAKE_DL_LIBS "dl")
|
INCLUDE(Platform/Linux)
|
||||||
SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC")
|
|
||||||
SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared")
|
|
||||||
SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-rdynamic")
|
|
||||||
SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
|
|
||||||
SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")
|
|
||||||
SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,")
|
|
||||||
SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
|
|
||||||
SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,")
|
|
||||||
|
|
||||||
INCLUDE(Platform/UnixPaths)
|
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
# Execute each test listed in:
|
||||||
|
#
|
||||||
|
set(scriptname "@CMAKE_CURRENT_SOURCE_DIR@/CMakeMinimumRequiredTestScript.cmake")
|
||||||
|
set(number_of_tests_expected 8)
|
||||||
|
|
||||||
|
include("@CMAKE_CURRENT_SOURCE_DIR@/ExecuteScriptTests.cmake")
|
||||||
|
execute_all_script_tests(${scriptname} number_of_tests_executed)
|
||||||
|
|
||||||
|
# And verify that number_of_tests_executed is at least as many as we know
|
||||||
|
# about as of this writing...
|
||||||
|
#
|
||||||
|
message(STATUS "scriptname='${scriptname}'")
|
||||||
|
message(STATUS "number_of_tests_executed='${number_of_tests_executed}'")
|
||||||
|
message(STATUS "number_of_tests_expected='${number_of_tests_expected}'")
|
||||||
|
|
||||||
|
if(number_of_tests_executed LESS number_of_tests_expected)
|
||||||
|
message(FATAL_ERROR "error: some test cases were skipped")
|
||||||
|
endif()
|
@ -0,0 +1,31 @@
|
|||||||
|
message(STATUS "testname='${testname}'")
|
||||||
|
|
||||||
|
if(testname STREQUAL empty) # pass
|
||||||
|
cmake_minimum_required()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bogus) # fail
|
||||||
|
cmake_minimum_required(BOGUS)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL no_version) # fail
|
||||||
|
cmake_minimum_required(VERSION)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL no_version_before_fatal_error) # fail
|
||||||
|
cmake_minimum_required(VERSION FATAL_ERROR)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bad_version) # fail
|
||||||
|
cmake_minimum_required(VERSION 2.blah.blah)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL worse_version) # fail
|
||||||
|
cmake_minimum_required(VERSION blah.blah.blah)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL future_version) # fail
|
||||||
|
math(EXPR major "${CMAKE_MAJOR_VERSION} + 1")
|
||||||
|
cmake_minimum_required(VERSION ${major}.2.1)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL unknown_arg) # fail
|
||||||
|
cmake_minimum_required(VERSION ${CMAKE_MAJOR_VERSION}.0.0 SILLY)
|
||||||
|
|
||||||
|
else() # fail
|
||||||
|
message(FATAL_ERROR "testname='${testname}' - error: no such test in '${CMAKE_CURRENT_LIST_FILE}'")
|
||||||
|
|
||||||
|
endif()
|
@ -0,0 +1,18 @@
|
|||||||
|
# Execute each test listed in:
|
||||||
|
#
|
||||||
|
set(scriptname "@CMAKE_CURRENT_SOURCE_DIR@/EndStuffTestScript.cmake")
|
||||||
|
set(number_of_tests_expected 9)
|
||||||
|
|
||||||
|
include("@CMAKE_CURRENT_SOURCE_DIR@/ExecuteScriptTests.cmake")
|
||||||
|
execute_all_script_tests(${scriptname} number_of_tests_executed)
|
||||||
|
|
||||||
|
# And verify that number_of_tests_executed is at least as many as we know
|
||||||
|
# about as of this writing...
|
||||||
|
#
|
||||||
|
message(STATUS "scriptname='${scriptname}'")
|
||||||
|
message(STATUS "number_of_tests_executed='${number_of_tests_executed}'")
|
||||||
|
message(STATUS "number_of_tests_expected='${number_of_tests_expected}'")
|
||||||
|
|
||||||
|
if(number_of_tests_executed LESS number_of_tests_expected)
|
||||||
|
message(FATAL_ERROR "error: some test cases were skipped")
|
||||||
|
endif()
|
@ -0,0 +1,70 @@
|
|||||||
|
message(STATUS "testname='${testname}'")
|
||||||
|
|
||||||
|
if(testname STREQUAL bad_else) # fail
|
||||||
|
file(WRITE "${dir}/${testname}.cmake"
|
||||||
|
"else()
|
||||||
|
")
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
|
||||||
|
RESULT_VARIABLE rv)
|
||||||
|
if(NOT rv EQUAL 0)
|
||||||
|
message(FATAL_ERROR "${testname} failed")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bad_elseif) # fail
|
||||||
|
file(WRITE "${dir}/${testname}.cmake"
|
||||||
|
"elseif()
|
||||||
|
")
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
|
||||||
|
RESULT_VARIABLE rv)
|
||||||
|
if(NOT rv EQUAL 0)
|
||||||
|
message(FATAL_ERROR "${testname} failed")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bad_endforeach) # fail
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bad_endfunction) # fail
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bad_endif) # fail
|
||||||
|
file(WRITE "${dir}/${testname}.cmake"
|
||||||
|
"cmake_minimum_required(VERSION 2.8)
|
||||||
|
endif()
|
||||||
|
")
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
|
||||||
|
RESULT_VARIABLE rv)
|
||||||
|
if(NOT rv EQUAL 0)
|
||||||
|
message(FATAL_ERROR "${testname} failed")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL endif_low_min_version) # pass
|
||||||
|
file(WRITE "${dir}/${testname}.cmake"
|
||||||
|
"cmake_minimum_required(VERSION 1.2)
|
||||||
|
endif()
|
||||||
|
")
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
|
||||||
|
RESULT_VARIABLE rv)
|
||||||
|
if(NOT rv EQUAL 0)
|
||||||
|
message(FATAL_ERROR "${testname} failed")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL endif_no_min_version) # pass
|
||||||
|
file(WRITE "${dir}/${testname}.cmake"
|
||||||
|
"endif()
|
||||||
|
")
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -P "${dir}/${testname}.cmake"
|
||||||
|
RESULT_VARIABLE rv)
|
||||||
|
if(NOT rv EQUAL 0)
|
||||||
|
message(FATAL_ERROR "${testname} failed")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bad_endmacro) # fail
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bad_endwhile) # fail
|
||||||
|
endwhile()
|
||||||
|
|
||||||
|
else() # fail
|
||||||
|
message(FATAL_ERROR "testname='${testname}' - error: no such test in '${CMAKE_CURRENT_LIST_FILE}'")
|
||||||
|
|
||||||
|
endif()
|
@ -0,0 +1,63 @@
|
|||||||
|
# This function calls the ${scriptname} file to execute one test case:
|
||||||
|
#
|
||||||
|
function(execute_one_script_test scriptname testname expected_result)
|
||||||
|
message("execute_one_script_test")
|
||||||
|
message("testname=[${testname}]")
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-D "dir:STRING=${dir}"
|
||||||
|
-D "testname:STRING=${testname}"
|
||||||
|
-P "${scriptname}"
|
||||||
|
OUTPUT_VARIABLE out
|
||||||
|
ERROR_VARIABLE err
|
||||||
|
RESULT_VARIABLE result
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
ERROR_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
|
||||||
|
message("out=[${out}]")
|
||||||
|
message("err=[${err}]")
|
||||||
|
|
||||||
|
if(expected_result STREQUAL "fail")
|
||||||
|
# case expected to fail, result should be non-0...
|
||||||
|
# error if it's 0
|
||||||
|
if("${result}" STREQUAL "0")
|
||||||
|
message(SEND_ERROR "script failed: testname='${testname}' [${result}] actually passed, but expected to fail...")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
# case expected to pass, result should be 0...
|
||||||
|
# error if it's non-0
|
||||||
|
if(NOT "${result}" STREQUAL "0")
|
||||||
|
message(SEND_ERROR "script failed: testname='${testname}' [${result}] actually failed, but expected to pass...")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
message("")
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
|
# This function reads the script file and calls execute_one_script_test for
|
||||||
|
# each testname case listed in the script. To add new cases, simply edit the
|
||||||
|
# script file and add an elseif() clause that matches 'regex' below.
|
||||||
|
#
|
||||||
|
function(execute_all_script_tests scriptname result)
|
||||||
|
file(READ "${scriptname}" script)
|
||||||
|
|
||||||
|
string(REPLACE ";" "\\\\;" script "${script}")
|
||||||
|
string(REPLACE "\n" "E;" script "${script}")
|
||||||
|
|
||||||
|
set(count 0)
|
||||||
|
set(regex "^ *(if|elseif) *\\( *testname +STREQUAL +\\\"*([^\\\"\\)]+)\\\"* *\\) *# *(fail|pass) *E$")
|
||||||
|
|
||||||
|
foreach(line ${script})
|
||||||
|
if(line MATCHES "${regex}")
|
||||||
|
math(EXPR count "${count} + 1")
|
||||||
|
string(REGEX REPLACE "${regex}" "\\2" testname "${line}")
|
||||||
|
string(REGEX REPLACE "${regex}" "\\3" expected_result "${line}")
|
||||||
|
execute_one_script_test(${scriptname} ${testname} ${expected_result})
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
set(${result} ${count} PARENT_SCOPE)
|
||||||
|
endfunction()
|
@ -0,0 +1,18 @@
|
|||||||
|
# Execute each test listed in:
|
||||||
|
#
|
||||||
|
set(scriptname "@CMAKE_CURRENT_SOURCE_DIR@/MathTestScript.cmake")
|
||||||
|
set(number_of_tests_expected 4)
|
||||||
|
|
||||||
|
include("@CMAKE_CURRENT_SOURCE_DIR@/ExecuteScriptTests.cmake")
|
||||||
|
execute_all_script_tests(${scriptname} number_of_tests_executed)
|
||||||
|
|
||||||
|
# And verify that number_of_tests_executed is at least as many as we know
|
||||||
|
# about as of this writing...
|
||||||
|
#
|
||||||
|
message(STATUS "scriptname='${scriptname}'")
|
||||||
|
message(STATUS "number_of_tests_executed='${number_of_tests_executed}'")
|
||||||
|
message(STATUS "number_of_tests_expected='${number_of_tests_expected}'")
|
||||||
|
|
||||||
|
if(number_of_tests_executed LESS number_of_tests_expected)
|
||||||
|
message(FATAL_ERROR "error: some test cases were skipped")
|
||||||
|
endif()
|
@ -0,0 +1,18 @@
|
|||||||
|
message(STATUS "testname='${testname}'")
|
||||||
|
|
||||||
|
if(testname STREQUAL empty) # fail
|
||||||
|
math()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bogus) # fail
|
||||||
|
math(BOGUS)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL not_enough_args) # fail
|
||||||
|
math(EXPR x)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL cannot_parse) # fail
|
||||||
|
math(EXPR x "1 + 2 +")
|
||||||
|
|
||||||
|
else() # fail
|
||||||
|
message(FATAL_ERROR "testname='${testname}' - error: no such test in '${CMAKE_CURRENT_LIST_FILE}'")
|
||||||
|
|
||||||
|
endif()
|
@ -0,0 +1,18 @@
|
|||||||
|
# Execute each test listed in StringTestScript.cmake:
|
||||||
|
#
|
||||||
|
set(scriptname "@CMAKE_CURRENT_SOURCE_DIR@/StringTestScript.cmake")
|
||||||
|
set(number_of_tests_expected 52)
|
||||||
|
|
||||||
|
include("@CMAKE_CURRENT_SOURCE_DIR@/ExecuteScriptTests.cmake")
|
||||||
|
execute_all_script_tests(${scriptname} number_of_tests_executed)
|
||||||
|
|
||||||
|
# And verify that number_of_tests_executed is at least as many as we know
|
||||||
|
# about as of this writing...
|
||||||
|
#
|
||||||
|
message(STATUS "scriptname='${scriptname}'")
|
||||||
|
message(STATUS "number_of_tests_executed='${number_of_tests_executed}'")
|
||||||
|
message(STATUS "number_of_tests_expected='${number_of_tests_expected}'")
|
||||||
|
|
||||||
|
if(number_of_tests_executed LESS number_of_tests_expected)
|
||||||
|
message(FATAL_ERROR "error: some test cases were skipped")
|
||||||
|
endif()
|
@ -0,0 +1,192 @@
|
|||||||
|
message(STATUS "testname='${testname}'")
|
||||||
|
|
||||||
|
if(testname STREQUAL empty) # fail
|
||||||
|
string()
|
||||||
|
|
||||||
|
elseif(testname STREQUAL bogus) # fail
|
||||||
|
string(BOGUS)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL random) # pass
|
||||||
|
string(RANDOM r)
|
||||||
|
message(STATUS "r='${r}'")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL toupper_no_variable) # fail
|
||||||
|
string(TOUPPER)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL ascii_no_variable) # fail
|
||||||
|
string(ASCII)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL ascii_code_too_small) # fail
|
||||||
|
string(ASCII -1 bummer)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL ascii_code_too_large) # fail
|
||||||
|
string(ASCII 288 bummer)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL configure_no_input) # fail
|
||||||
|
string(CONFIGURE)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL configure_no_variable) # fail
|
||||||
|
string(CONFIGURE "this is @testname@")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL configure_escape_quotes) # pass
|
||||||
|
string(CONFIGURE "this is @testname@" v ESCAPE_QUOTES)
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL configure_bogus) # fail
|
||||||
|
string(CONFIGURE "this is @testname@" v ESCAPE_QUOTES BOGUS)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_no_mode) # fail
|
||||||
|
string(REGEX)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_match_not_enough_args) # fail
|
||||||
|
string(REGEX MATCH)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_matchall_not_enough_args) # fail
|
||||||
|
string(REGEX MATCHALL)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_replace_not_enough_args) # fail
|
||||||
|
string(REGEX REPLACE)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_bogus_mode) # fail
|
||||||
|
string(REGEX BOGUS)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_match_multiple_inputs) # pass
|
||||||
|
string(REGEX MATCH ".*" v input1 input2 input3 input4)
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_match_bad_regex) # fail
|
||||||
|
string(REGEX MATCH "(.*" v input)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_match_empty_string) # fail
|
||||||
|
string(REGEX MATCH "x*" v "")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_match_no_match) # pass
|
||||||
|
string(REGEX MATCH "xyz" v "abc")
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_matchall_multiple_inputs) # pass
|
||||||
|
string(REGEX MATCHALL "input" v input1 input2 input3 input4)
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_matchall_bad_regex) # fail
|
||||||
|
string(REGEX MATCHALL "(.*" v input)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_matchall_empty_string) # fail
|
||||||
|
string(REGEX MATCHALL "x*" v "")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_replace_ends_with_backslash) # fail
|
||||||
|
string(REGEX REPLACE "input" "output\\" v input1 input2 input3 input4)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_replace_ends_with_escaped_backslash) # pass
|
||||||
|
string(REGEX REPLACE "input" "output\\\\" v input1 input2 input3 input4)
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_replace_has_linefeed) # pass
|
||||||
|
string(REGEX REPLACE "input" "output\\n" v input1 input2 input3 input4)
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_replace_has_bogus_escape) # fail
|
||||||
|
string(REGEX REPLACE "input" "output\\a" v input1 input2 input3 input4)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_replace_bad_regex) # fail
|
||||||
|
string(REGEX REPLACE "this (.*" "with that" v input)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_replace_empty_string) # fail
|
||||||
|
string(REGEX REPLACE "x*" "that" v "")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_replace_index_too_small) # fail
|
||||||
|
string(REGEX REPLACE "^this (.*)$" "with \\1 \\-1" v "this input")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL regex_replace_index_too_large) # fail
|
||||||
|
string(REGEX REPLACE "^this (.*)$" "with \\1 \\2" v "this input")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL compare_no_mode) # fail
|
||||||
|
string(COMPARE)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL compare_bogus_mode) # fail
|
||||||
|
string(COMPARE BOGUS)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL compare_not_enough_args) # fail
|
||||||
|
string(COMPARE EQUAL)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL replace_not_enough_args) # fail
|
||||||
|
string(REPLACE)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL replace_multiple_inputs) # pass
|
||||||
|
string(REPLACE "input" "output" v input1 input2 input3 input4)
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL substring_not_enough_args) # fail
|
||||||
|
string(SUBSTRING)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL substring_begin_too_large) # fail
|
||||||
|
string(SUBSTRING "abcdefg" 25 100 v)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL substring_end_too_large) # fail
|
||||||
|
string(SUBSTRING "abcdefg" 1 100 v)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL substring_begin_less_than_zero) # fail
|
||||||
|
string(SUBSTRING "abcdefg" -2 4 v)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL substring_end_less_than_begin) # fail
|
||||||
|
string(SUBSTRING "abcdefg" 6 3 v)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL length_not_enough_args) # fail
|
||||||
|
string(LENGTH)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL strip_not_enough_args) # fail
|
||||||
|
string(STRIP)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL random_not_enough_args) # fail
|
||||||
|
string(RANDOM)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL random_3_args) # fail
|
||||||
|
string(RANDOM LENGTH 9)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL random_5_args) # fail
|
||||||
|
string(RANDOM LENGTH 9 ALPHABET "aceimnorsuvwxz")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL random_with_length) # pass
|
||||||
|
string(RANDOM LENGTH 9 v)
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL random_with_alphabet) # pass
|
||||||
|
string(RANDOM ALPHABET "aceimnorsuvwxz" v)
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL random_bad_length) # fail
|
||||||
|
string(RANDOM LENGTH 0 v)
|
||||||
|
|
||||||
|
elseif(testname STREQUAL random_empty_alphabet) # pass
|
||||||
|
string(RANDOM ALPHABET "" v)
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL random_with_length_and_alphabet) # pass
|
||||||
|
string(RANDOM LENGTH 9 ALPHABET "aceimnorsuvwxz" v)
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
elseif(testname STREQUAL random_with_various_alphabets) # pass
|
||||||
|
# small alphabet
|
||||||
|
string(RANDOM LENGTH 32 ALPHABET "ACGT" v)
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
# smaller alphabet
|
||||||
|
string(RANDOM LENGTH 32 ALPHABET "AB" v)
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
# smallest alphabet
|
||||||
|
string(RANDOM LENGTH 32 ALPHABET "Z" v)
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
# smallest length and alphabet
|
||||||
|
string(RANDOM LENGTH 1 ALPHABET "Q" v)
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
# alphabet of many colors - use all the crazy keyboard characters
|
||||||
|
string(RANDOM LENGTH 78 ALPHABET "~`!@#$%^&*()_-+={}[]\\|:\\;'\",.<>/?" v)
|
||||||
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
else() # fail
|
||||||
|
message(FATAL_ERROR "testname='${testname}' - error: no such test in '${CMAKE_CURRENT_LIST_FILE}'")
|
||||||
|
|
||||||
|
endif()
|
@ -0,0 +1,52 @@
|
|||||||
|
message("CTEST_FULL_OUTPUT (Avoid ctest truncation of output)")
|
||||||
|
|
||||||
|
message(STATUS "build_dir='${build_dir}'")
|
||||||
|
|
||||||
|
message(STATUS "source_dir='${source_dir}'")
|
||||||
|
|
||||||
|
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -E
|
||||||
|
remove_directory ${build_dir}
|
||||||
|
TIMEOUT 5)
|
||||||
|
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -E
|
||||||
|
make_directory ${build_dir}
|
||||||
|
TIMEOUT 5)
|
||||||
|
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -E
|
||||||
|
copy_directory ${source_dir} ${build_dir}/src
|
||||||
|
TIMEOUT 5)
|
||||||
|
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -E
|
||||||
|
make_directory ${build_dir}/build
|
||||||
|
TIMEOUT 5)
|
||||||
|
|
||||||
|
# This is enough to answer 32 questions with "the default answer is ok"...
|
||||||
|
#
|
||||||
|
file(WRITE ${build_dir}/input.txt
|
||||||
|
"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n")
|
||||||
|
|
||||||
|
|
||||||
|
message(STATUS "running wizard mode (cmake -i)...")
|
||||||
|
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} -i ../src
|
||||||
|
INPUT_FILE ${build_dir}/input.txt
|
||||||
|
WORKING_DIRECTORY ${build_dir}/build
|
||||||
|
TIMEOUT 5
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
message(STATUS "building...")
|
||||||
|
|
||||||
|
execute_process(COMMAND ${CMAKE_COMMAND} --build .
|
||||||
|
WORKING_DIRECTORY ${build_dir}/build
|
||||||
|
TIMEOUT 5
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
message(STATUS "testing...")
|
||||||
|
|
||||||
|
execute_process(COMMAND ${CMAKE_CTEST_COMMAND}
|
||||||
|
WORKING_DIRECTORY ${build_dir}/build
|
||||||
|
TIMEOUT 5
|
||||||
|
)
|
@ -0,0 +1,10 @@
|
|||||||
|
cmake_minimum_required(VERSION 2.8)
|
||||||
|
project(SmallAndFast)
|
||||||
|
|
||||||
|
include(CTest)
|
||||||
|
|
||||||
|
add_executable(echoargs echoargs.c)
|
||||||
|
|
||||||
|
add_test(test0 echoargs)
|
||||||
|
add_test(test1 echoargs 1)
|
||||||
|
add_test(test2 echoargs 1 2)
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue