Blame view

src/CMakeLists.txt 3.74 KB
51becbde   Peter M. Groen   Committed the ent...
1
  cmake_minimum_required(VERSION 3.12)
e0b1fe64   Peter M. Groen   Fixed script.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  # ==============================================================================
  # Check to see if we're a submodule or top-repo.
  if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
      message( STATUS "Looks like we're a single module" )
      LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
  elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake)
      message( STATUS "Looks like we're a submodule" )
      LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake)
  else()
      message( FATAL_ERROR "No cmake directory found. Did you run the submodules script?" )
  endif()
  
  # ==============================================================================
  # Check to see if there is versioning information available
  if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../versioning)
      LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../versioning/cmake)
  elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../../versioning)
      LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../versioning/cmake)
  else()
      message( FATAL_ERROR "No ${CURRENT_SOURCE_DIR}/osdev_versioning directory found. Did you run the submodules script?" )
  endif()
  # ==============================================================================
51becbde   Peter M. Groen   Committed the ent...
24
  include(projectheader)
e0b1fe64   Peter M. Groen   Fixed script.
25
  
51becbde   Peter M. Groen   Committed the ent...
26
27
28
29
30
31
32
33
  project_header(mqtt)
  
  find_package( Boost REQUIRED COMPONENTS regex )
  
  include(compiler)
  
  include_directories(
      ${CMAKE_CURRENT_SOURCE_DIR}/../logutils
c6c62b01   Peter M. Groen   Preparating for p...
34
      ${CMAKE_CURRENT_SOURCE_DIR}/../include
51becbde   Peter M. Groen   Committed the ent...
35
36
37
  )
  
  set(SRC_LIST
c6c62b01   Peter M. Groen   Preparating for p...
38
39
      ${CMAKE_CURRENT_SOURCE_DIR}/mqttpublisherbase.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/mqttsubscriberbase.cpp
51becbde   Peter M. Groen   Committed the ent...
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
      ${CMAKE_CURRENT_SOURCE_DIR}/clientpaho.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/commondefs.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/connectionstatus.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/compiletimedigits.h
      ${CMAKE_CURRENT_SOURCE_DIR}/compiletimestring.h
      ${CMAKE_CURRENT_SOURCE_DIR}/credentials.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/errorcode.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/token.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/ihistogram.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/timemeasurement.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/mqttidgenerator.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/mqtttypeconverter.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/mqttutil.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/mqttmessage.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/mqttclient.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/mqttfailure.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/mqttsuccess.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/utils.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/imqttclientimpl.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/istatecallback.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/scopeguard.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/serverstate.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/sharedreaderlock.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/stringutils.cpp
      ${CMAKE_CURRENT_SOURCE_DIR}/uriparser.cpp
      # Helper files ( Utillities )
      ${CMAKE_CURRENT_SOURCE_DIR}/bimap.h
      ${CMAKE_CURRENT_SOURCE_DIR}/compat-c++14.h
      ${CMAKE_CURRENT_SOURCE_DIR}/compat-chrono.h
      ${CMAKE_CURRENT_SOURCE_DIR}/histogram.h
      ${CMAKE_CURRENT_SOURCE_DIR}/histogramprovider.h
      ${CMAKE_CURRENT_SOURCE_DIR}/imqttclient.h
      ${CMAKE_CURRENT_SOURCE_DIR}/imqttclientimpl.h
      ${CMAKE_CURRENT_SOURCE_DIR}/lockguard.h
      ${CMAKE_CURRENT_SOURCE_DIR}/macrodefs.h
      ${CMAKE_CURRENT_SOURCE_DIR}/measure.h
      ${CMAKE_CURRENT_SOURCE_DIR}/metaprogrammingdefs.h
      ${CMAKE_CURRENT_SOURCE_DIR}/mqttstream.h
      ${CMAKE_CURRENT_SOURCE_DIR}/stringify.h
      ${CMAKE_CURRENT_SOURCE_DIR}/stringutils.h
      ${CMAKE_CURRENT_SOURCE_DIR}/synchronizedqueue.h
      ${CMAKE_CURRENT_SOURCE_DIR}/utils.h
      ${CMAKE_CURRENT_SOURCE_DIR}/uriutils.h
  )
  
  include(library)
  add_libraries(
      PUBLIC
          Boost::boost
          Boost::regex
          paho-mqtt3a
  )
  
  include(installation)
  install_component()