
project(utils)

find_package(PkgConfig REQUIRED)

set(SOURCES
  src/Threaded.cpp
  src/ThreadedWorkQueue.cpp
  src/SharedResource.cpp
  src/KeyFileHelper.cpp
  src/utils.cpp
  src/InstallPath.cpp
  src/StrPrintf.cpp
  src/TimeUtils.cpp
  src/StringConfig.cpp
  src/InMy.cpp
  src/ZombieControl.cpp
  src/base64.cpp
  src/Event.cpp
  src/StackSerializer.cpp
  src/ScopeHelpers.cpp
  src/crc64.c
  src/TTYRawMode.cpp
  src/LocalSocket.cpp
  src/FilePathHashSuffix.cpp
  src/Environment.cpp
  src/Escaping.cpp
  src/WideMB.cpp
  src/FSNotify.cpp
  src/TestPath.cpp
  src/PipeIPC.cpp
  src/PathParts.cpp
  src/CharClasses.cpp
  src/POpen.cpp
  src/VT256ColorTable.cpp
  src/ReadWholeFile.cpp
  src/ThrowPrintf.cpp
  src/FcntlHelpers.cpp
  src/Panic.cpp
  src/IntStrConv.cpp
  src/EnsureDir.cpp
  src/RandomString.cpp
)

add_library (utils STATIC ${SOURCES})


target_include_directories(utils PRIVATE include)

find_package(Threads REQUIRED)
if(THREADS_HAVE_PTHREAD_ARG)
  target_compile_options(utils PUBLIC "-pthread")
endif()
if(CMAKE_THREAD_LIBS_INIT)
  target_link_libraries(utils "${CMAKE_THREAD_LIBS_INIT}")
endif()
if(${CMAKE_SYSTEM_NAME} MATCHES "Haiku")
    target_link_libraries(utils network)
endif()
