Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
畅游知识海洋
json
提交
c87b080c
J
json
项目概览
畅游知识海洋
/
json
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
json
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
c87b080c
编写于
8月 25, 2017
作者:
N
Niels Lohmann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
👷
new cmake file for test cases
上级
5b71bf09
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
40 addition
and
72 deletion
+40
-72
test/CMakeLists.txt
test/CMakeLists.txt
+40
-72
未找到文件。
test/CMakeLists.txt
浏览文件 @
c87b080c
#############################################################################
# Catch library with the main function to speed up build
#############################################################################
add_library
(
catch_main OBJECT
"src/unit.cpp"
)
set_target_properties
(
catch_main PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED ON
COMPILE_DEFINITIONS
"$<$<CXX_COMPILER_ID:MSVC>:_SCL_SECURE_NO_WARNINGS>"
COMPILE_OPTIONS
"$<$<CXX_COMPILER_ID:MSVC>:/EHsc;$<$<CONFIG:Release>:/Od>>"
)
target_include_directories
(
catch_main PRIVATE
"thirdparty/catch"
)
# The unit test executable.
set
(
JSON_UNITTEST_TARGET_NAME
"json_unit"
)
add_executable
(
${
JSON_UNITTEST_TARGET_NAME
}
$<TARGET_OBJECTS:catch_main>
"../src/json.hpp"
"src/unit-algorithms.cpp"
"src/unit-allocator.cpp"
"src/unit-capacity.cpp"
"src/unit-cbor.cpp"
"src/unit-class_const_iterator.cpp"
"src/unit-class_iterator.cpp"
"src/unit-class_lexer.cpp"
"src/unit-class_parser.cpp"
"src/unit-comparison.cpp"
"src/unit-concepts.cpp"
"src/unit-constructor1.cpp"
"src/unit-constructor2.cpp"
"src/unit-convenience.cpp"
"src/unit-conversions.cpp"
"src/unit-deserialization.cpp"
"src/unit-element_access1.cpp"
"src/unit-element_access2.cpp"
"src/unit-inspection.cpp"
"src/unit-iterator_wrapper.cpp"
"src/unit-iterators1.cpp"
"src/unit-iterators2.cpp"
"src/unit-json_patch.cpp"
"src/unit-json_pointer.cpp"
"src/unit-meta.cpp"
"src/unit-modifiers.cpp"
"src/unit-msgpack.cpp"
"src/unit-noexcept.cpp"
"src/unit-pointer_access.cpp"
"src/unit-readme.cpp"
"src/unit-reference_access.cpp"
"src/unit-regression.cpp"
"src/unit-serialization.cpp"
"src/unit-testsuites.cpp"
"src/unit-udt.cpp"
"src/unit-unicode.cpp"
)
#############################################################################
# one executable for each unit test file
#############################################################################
set_target_properties
(
${
JSON_UNITTEST_TARGET_NAME
}
PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED ON
)
file
(
GLOB files
"src/unit-*.cpp"
)
foreach
(
file
${
files
}
)
get_filename_component
(
file_basename
${
file
}
NAME_WE
)
string
(
REGEX REPLACE
"unit-([^$]+)"
"test-
\\
1"
testcase
${
file_basename
}
)
if
(
MSVC
)
set_target_properties
(
${
JSON_UNITTEST_TARGET_NAME
}
PROPERTIES
COMPILE_DEFINITIONS
"_SCL_SECURE_NO_WARNINGS"
COMPILE_OPTIONS
"/EHsc;$<$<CONFIG:Release>:/Od>"
add_executable
(
${
testcase
}
$<TARGET_OBJECTS:catch_main>
${
file
}
)
set_target_properties
(
${
testcase
}
PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED ON
COMPILE_DEFINITIONS
"$<$<CXX_COMPILER_ID:MSVC>:_SCL_SECURE_NO_WARNINGS>"
COMPILE_OPTIONS
"$<$<CXX_COMPILER_ID:MSVC>:/EHsc;$<$<CONFIG:Release>:/Od>>"
)
endif
()
target_include_directories
(
${
JSON_UNITTEST_TARGET_NAME
}
PRIVATE
"src"
"thirdparty/catch"
)
target_link_libraries
(
${
JSON_UNITTEST_TARGET_NAME
}
${
JSON_TARGET_NAME
}
)
target_compile_definitions
(
${
testcase
}
PRIVATE CATCH_CONFIG_FAST_COMPILE
)
target_include_directories
(
${
testcase
}
PRIVATE
"thirdparty/catch"
)
target_link_libraries
(
${
testcase
}
${
JSON_TARGET_NAME
}
)
if
(
NOT MSVC
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-Wno-deprecated -Wno-float-equal"
)
endif
()
include
(
cotire OPTIONAL
)
include
(
cotire OPTIONAL
)
if
(
COMMAND cotire
)
cotire
(
${
testcase
}
)
endif
()
if
(
COMMAND cotire
)
set_target_properties
(
${
JSON_UNITTEST_TARGET_NAME
}
PROPERTIES
COTIRE_ADD_UNITY_BUILD FALSE
COTIRE_CXX_PREFIX_HEADER_INIT
"src/prefix.hpp"
add_test
(
NAME
"
${
testcase
}
_default"
COMMAND
${
testcase
}
WORKING_DIRECTORY
${
CMAKE_SOURCE_DIR
}
)
# HACK - CMAKE_INCLUDE_SYSTEM_FLAG_CXX has a trailing space, which Cotire doesn't strip
# Technically, this fix should go in cotire.cmake. TODO - submit a pull request upstream.
if
(
CMAKE_INCLUDE_SYSTEM_FLAG_CXX
)
string
(
STRIP
"
${
CMAKE_INCLUDE_SYSTEM_FLAG_CXX
}
"
CMAKE_INCLUDE_SYSTEM_FLAG_CXX
)
endif
()
cotire
(
${
JSON_UNITTEST_TARGET_NAME
}
)
endif
()
set_tests_properties
(
"
${
testcase
}
_default"
PROPERTIES LABELS
"default"
)
add_test
(
NAME
"
${
JSON_UNITTEST_TARGET_NAME
}
_default"
COMMAND
${
JSON_UNITTEST_TARGET_NAME
}
WORKING_DIRECTORY
${
CMAKE_SOURCE_DIR
}
)
add_test
(
NAME
"
${
JSON_UNITTEST_TARGET_NAME
}
_all"
COMMAND
${
JSON_UNITTEST_TARGET_NAME
}
"*"
WORKING_DIRECTORY
${
CMAKE_SOURCE_DIR
}
)
add_test
(
NAME
"
${
testcase
}
_all"
COMMAND
${
testcase
}
"*"
WORKING_DIRECTORY
${
CMAKE_SOURCE_DIR
}
)
set_tests_properties
(
"
${
testcase
}
_all"
PROPERTIES LABELS
"all"
)
endforeach
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录