Skip to content

Commit 1c12e5d

Browse files
committed
Merge pull request stepcode#173 from mpictor/review/p21-rw-progress
Part 21 read-write progress
2 parents 278e45c + 5af38fe commit 1c12e5d

11 files changed

Lines changed: 358 additions & 815 deletions

File tree

CMakeLists.txt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,8 @@ INCLUDE(CheckLibraryExists)
229229
INCLUDE(CheckIncludeFile)
230230
INCLUDE(CheckFunctionExists)
231231
INCLUDE(CheckTypeSize)
232+
INCLUDE(CMakePushCheckState)
233+
INCLUDE(CheckCXXSourceRuns)
232234
INCLUDE(${SCL_CMAKE_DIR}/FindLEX.cmake)
233235
INCLUDE(${SCL_CMAKE_DIR}/FindYACC.cmake)
234236

@@ -250,6 +252,26 @@ CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT)
250252

251253
CHECK_TYPE_SIZE("ssize_t" SSIZE_T)
252254

255+
set( TEST_STD_THREAD "
256+
#include <iostream>
257+
#include <thread>
258+
void do_work() {
259+
std::cout << \"thread\" << std::endl;
260+
}
261+
int main() {
262+
std::thread t(do_work);
263+
t.join();
264+
}
265+
" )
266+
cmake_push_check_state()
267+
if( UNIX )
268+
set( CMAKE_REQUIRED_FLAGS "-pthread -std=c++0x" )
269+
else( UNIX )
270+
# vars probably need set for MSVC11, embarcadero, etc
271+
endif( UNIX )
272+
CHECK_CXX_SOURCE_RUNS( "${TEST_STD_THREAD}" HAVE_STD_THREAD ) #quotes are *required*!
273+
cmake_pop_check_state()
274+
253275
# Now that all the tests are done, configure the scl_cf.h file:
254276
get_property(CONFIG_H_FILE_CONTENTS GLOBAL PROPERTY SCL_CONFIG_H_CONTENTS)
255277
file(WRITE ${CONFIG_H_FILE} "${CONFIG_H_FILE_CONTENTS}")

include/scl_cf_cmake.h.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,6 @@
2222

2323
#cmakedefine HAVE_SSIZE_T 1
2424

25+
#cmakedefine HAVE_STD_THREAD 1
26+
2527
#endif /* SCL_CF_H */

run_ctest.cmake

Lines changed: 12 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -50,38 +50,6 @@ function( SUBMIT_TEST part )
5050
endif()
5151
endfunction( SUBMIT_TEST part )
5252

53-
# find number of processors, for faster builds
54-
# from http://www.kitware.com/blog/home/post/63
55-
if(NOT DEFINED PROCESSOR_COUNT)
56-
# Unknown:
57-
set(PROCESSOR_COUNT 0)
58-
59-
# Linux:
60-
set(cpuinfo_file "/proc/cpuinfo")
61-
if(EXISTS "${cpuinfo_file}")
62-
file(STRINGS "${cpuinfo_file}" procs REGEX "^processor.: [0-9]+$")
63-
list(LENGTH procs PROCESSOR_COUNT)
64-
endif()
65-
66-
# Mac:
67-
if(APPLE)
68-
find_program(cmd_sys_pro "system_profiler")
69-
if(cmd_sys_pro)
70-
execute_process(COMMAND ${cmd_sys_pro} OUTPUT_VARIABLE info)
71-
string(REGEX REPLACE "^.*Total Number Of Cores: ([0-9]+).*$" "\\1"
72-
PROCESSOR_COUNT "${info}")
73-
endif()
74-
endif()
75-
76-
# Windows:
77-
if(WIN32)
78-
set(PROCESSOR_COUNT "$ENV{NUMBER_OF_PROCESSORS}")
79-
endif()
80-
endif()
81-
82-
set(CTEST_BUILD_FLAGS "-j${PROCESSOR_COUNT}")
83-
84-
8553
######################################################
8654
##### To disable reporting of a set of tests, comment
8755
##### out the SUBMIT_TEST line immediately following
@@ -94,29 +62,33 @@ set(CTEST_BUILD_FLAGS "-j${PROCESSOR_COUNT}")
9462
ctest_start(Experimental)
9563
ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
9664

65+
file(WRITE "${CTEST_BINARY_DIRECTORY}/CTestCustom.cmake" "
66+
set( CTEST_CUSTOM_ERROR_EXCEPTION \"{standard input}:[0-9][0-9]*: WARNING: \")
67+
")
68+
9769
ctest_configure( BUILD "${CTEST_BINARY_DIRECTORY}" APPEND OPTIONS -DSCL_ENABLE_TESTING=ON )
9870
SUBMIT_TEST( Configure )
9971
ctest_build( BUILD "${CTEST_BINARY_DIRECTORY}" APPEND )
10072
SUBMIT_TEST( Build )
101-
# ctest_memcheck( BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res PARALLEL_LEVEL ${PROCESSOR_COUNT} )
73+
# ctest_memcheck( BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res )
10274

10375
if(NOT SKIP_TEST_UNITARY_SCHEMAS )
10476
ctest_test( BUILD "${CTEST_BINARY_DIRECTORY}" APPEND
105-
PARALLEL_LEVEL ${PROCESSOR_COUNT} INCLUDE_LABEL "unitary_schemas" )
77+
INCLUDE_LABEL "unitary_schemas" )
10678
SUBMIT_TEST( Test )
10779
endif()
10880

10981
if(NOT SKIP_CPP_TEST_SCHEMA_GEN )
11082
ctest_test( BUILD "${CTEST_BINARY_DIRECTORY}" APPEND
111-
PARALLEL_LEVEL ${PROCESSOR_COUNT} INCLUDE_LABEL "cpp_schema_gen" )
83+
INCLUDE_LABEL "cpp_schema_gen" )
11284
SUBMIT_TEST( Test )
11385
if(NOT SKIP_CPP_TEST_SCHEMA_BUILD )
11486
ctest_test( BUILD "${CTEST_BINARY_DIRECTORY}" APPEND
115-
PARALLEL_LEVEL ${PROCESSOR_COUNT} INCLUDE_LABEL "cpp_schema_build" )
87+
INCLUDE_LABEL "cpp_schema_build" )
11688
SUBMIT_TEST( Test )
11789
if(NOT SKIP_CPP_TEST_SCHEMA_RW )
11890
ctest_test( BUILD "${CTEST_BINARY_DIRECTORY}" APPEND
119-
PARALLEL_LEVEL ${PROCESSOR_COUNT} INCLUDE_LABEL "cpp_schema_rw" )
91+
INCLUDE_LABEL "cpp_schema_rw" )
12092
SUBMIT_TEST( Test )
12193
endif()
12294
endif()
@@ -125,17 +97,17 @@ endif()
12597
if(NOT SKIP_TEST_EXCHANGE_FILE )
12698
if( SKIP_CPP_TEST_SCHEMA_BUILD )
12799
ctest_test( BUILD "${CTEST_BINARY_DIRECTORY}" APPEND
128-
PARALLEL_LEVEL ${PROCESSOR_COUNT} INCLUDE "build_cpp_sdai_AP214E3_2010" )
100+
INCLUDE "build_cpp_sdai_AP214E3_2010" )
129101
SUBMIT_TEST( Test )
130102
endif()
131103
ctest_test( BUILD "${CTEST_BINARY_DIRECTORY}" APPEND
132-
PARALLEL_LEVEL ${PROCESSOR_COUNT} INCLUDE_LABEL "exchange_file" )
104+
INCLUDE_LABEL "exchange_file" )
133105
SUBMIT_TEST( Test )
134106
endif()
135107

136108
if(NOT SKIP_TEST_CPP_SCHEMA_SPECIFIC )
137109
ctest_test( BUILD "${CTEST_BINARY_DIRECTORY}" APPEND
138-
PARALLEL_LEVEL ${PROCESSOR_COUNT} INCLUDE_LABEL "cpp_schema_specific" )
110+
INCLUDE_LABEL "cpp_schema_specific" )
139111
SUBMIT_TEST( Test )
140112
endif()
141113

0 commit comments

Comments
 (0)