diff --git a/CMakeLists.txt b/CMakeLists.txt index a70616b..91046a8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,7 @@ set (PACKAGE_STRING "${PROJECT_NAME} ${PACKAGE_VERSION}") set (PACKAGE_TARNAME "${PROJECT_NAME}-${PACKAGE_VERSION}") set (PACKAGE_BUGREPORT "https://code.google.com/p/gflags/issues/") -project (${PROJECT_NAME} CXX C) +project (${PROJECT_NAME} CXX) version_numbers ( ${PACKAGE_VERSION} diff --git a/cmake/CheckForPthreads.cxx b/cmake/CheckForPthreads.cxx new file mode 100644 index 0000000..7250fbf --- /dev/null +++ b/cmake/CheckForPthreads.cxx @@ -0,0 +1,38 @@ +#include +#include +#include + +void* runner(void*); + +int res = 0; +#ifdef __CLASSIC_C__ +int main(){ + int ac; + char*av[]; +#else +int main(int ac, char*av[]){ +#endif + pthread_t tid[2]; + pthread_create(&tid[0], 0, runner, (void*)1); + pthread_create(&tid[1], 0, runner, (void*)2); + +#if defined(__BEOS__) && !defined(__ZETA__) // (no usleep on BeOS 5.) + usleep(1); // for strange behavior on single-processor sun +#endif + + pthread_join(tid[0], 0); + pthread_join(tid[1], 0); + if(ac > 1000){return *av[0];} + return res; +} + +void* runner(void* args) +{ + int cc; + for ( cc = 0; cc < 10; cc ++ ) + { + printf("%d CC: %d\n", (int)args, cc); + } + res ++; + return 0; +} diff --git a/cmake/FindThreadsCxx.cmake b/cmake/FindThreadsCxx.cmake index c2fb259..cdea511 100644 --- a/cmake/FindThreadsCxx.cmake +++ b/cmake/FindThreadsCxx.cmake @@ -100,7 +100,7 @@ else() message(STATUS "Check if compiler accepts -pthread") try_run(THREADS_PTHREAD_ARG THREADS_HAVE_PTHREAD_ARG ${CMAKE_BINARY_DIR} - ${CMAKE_ROOT}/Modules/CheckForPthreads.c + ${CMAKE_ROOT}/Modules/CheckForPthreads.cxx CMAKE_FLAGS -DLINK_LIBRARIES:STRING=-pthread COMPILE_OUTPUT_VARIABLE OUTPUT)