From 410e1f33287e31bd8130d09a85567e09ee1f9ca2 Mon Sep 17 00:00:00 2001 From: Guilherme Amadio <amadio@cern.ch> Date: Fri, 28 Sep 2018 09:20:13 +0200 Subject: [PATCH] Update CMakeLists.txt for core/thread --- core/thread/CMakeLists.txt | 106 ++++++++++++++++++++++++++----------- 1 file changed, 76 insertions(+), 30 deletions(-) diff --git a/core/thread/CMakeLists.txt b/core/thread/CMakeLists.txt index 77801c20ff3..afc44091ab8 100644 --- a/core/thread/CMakeLists.txt +++ b/core/thread/CMakeLists.txt @@ -2,40 +2,86 @@ # CMakeLists.txt file for building ROOT core/thread package ############################################################################ -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../foundation/res) - -set(headers TAtomicCount.h TCondition.h TConditionImp.h TMutex.h TMutexImp.h - TRWLock.h ROOT/TRWSpinLock.hxx TSemaphore.h TThread.h TThreadFactory.h - TThreadImp.h ROOT/TThreadedObject.hxx TThreadPool.h - ThreadLocalStorage.h ROOT/TSpinMutex.hxx ROOT/TReentrantRWLock.hxx ROOT/RConcurrentHashColl.hxx) -if(NOT WIN32) - set(headers ${headers} TPosixCondition.h TPosixMutex.h - TPosixThread.h TPosixThreadFactory.h PosixThreadInc.h) - set(installoptions FILTER "Win32") +if(WIN32) + set(PLATFORM_FILTER FILTER "Posix") + set(PLATFORM_HEADERS + TWin32Condition.h + TWin32Mutex.h + TWin32Thread.h + TWin32ThreadFactory.h + ) else() - set(headers ${headers} TWin32Condition.h TWin32Mutex.h - TWin32Thread.h TWin32ThreadFactory.h) - set(installoptions FILTER "Posix") + set(PLATFORM_FILTER FILTER "Win32") + set(PLATFORM_HEADERS + TPosixCondition.h + TPosixMutex.h + TPosixThread.h + TPosixThreadFactory.h + PosixThreadInc.h + ) endif() -set(sources TCondition.cxx TConditionImp.cxx TMutex.cxx TMutexImp.cxx - TRWLock.cxx TRWSpinLock.cxx TSemaphore.cxx TThread.cxx TThreadFactory.cxx - TThreadImp.cxx TRWMutexImp.cxx TReentrantRWLock.cxx RConcurrentHashColl.cxx) -if(NOT WIN32) - set(sources ${sources} TPosixCondition.cxx TPosixMutex.cxx - TPosixThread.cxx TPosixThreadFactory.cxx) +ROOT_STANDARD_LIBRARY_PACKAGE(Thread + HEADERS + ${PLATFORM_HEADERS} + TAtomicCount.h + TCondition.h + TConditionImp.h + ThreadLocalStorage.h + TMutex.h + TMutexImp.h + TRWLock.h + TSemaphore.h + TThreadFactory.h + TThread.h + TThreadImp.h + TThreadPool.h + ROOT/RConcurrentHashColl.hxx + ROOT/TReentrantRWLock.hxx + ROOT/TRWSpinLock.hxx + ROOT/TSpinMutex.hxx + ROOT/TThreadedObject.hxx + SOURCES + src/RConcurrentHashColl.cxx + src/TCondition.cxx + src/TConditionImp.cxx + src/TMutex.cxx + src/TMutexImp.cxx + src/TReentrantRWLock.cxx + src/TRWLock.cxx + src/TRWMutexImp.cxx + src/TRWSpinLock.cxx + src/TSemaphore.cxx + src/TThread.cxx + src/TThreadFactory.cxx + src/TThreadImp.cxx + OBJECT_LIBRARY + STAGE1 + DEPENDENCIES + Core + INSTALL_OPTIONS ${installoptions} +) + +target_link_libraries(Thread PUBLIC ${CMAKE_THREAD_LIBS_INIT}) + +# keep include directory for ROOT/RSha256.hxx private +set_source_files_properties(src/RConcurrentHashColl.cxx + PROPERTIES INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/../foundation/res) + +if(WIN32) + target_sources(Thread PRIVATE + src/TWin32Condition.cxx + src/TWin32Mutex.cxx + src/TWin32Thread.cxx + src/TWin32ThreadFactory.cxx + ) else() - set(sources ${sources} TWin32Condition.cxx TWin32Mutex.cxx - TWin32Thread.cxx TWin32ThreadFactory.cxx) + target_sources(Thread PRIVATE + src/TPosixCondition.cxx + src/TPosixMutex.cxx + src/TPosixThread.cxx + src/TPosixThreadFactory.cxx + ) endif() -ROOT_STANDARD_LIBRARY_PACKAGE(Thread - HEADERS ${headers} - SOURCES ${sources} - OBJECT_LIBRARY - STAGE1 - DEPENDENCIES Core - LIBRARIES ${CMAKE_THREAD_LIBS_INIT} - INSTALL_OPTIONS ${installoptions}) - ROOT_ADD_TEST_SUBDIRECTORY(test) -- GitLab