cmake: add enables for other components
Change-Id: I813b6ecb9d8fb00247464e93cf48d76bcfea0a29
Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e8b49f1..6d3d693 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -63,6 +63,7 @@
endif (FEATURE_THREADS)
option(DEVBUILD "Enable compiler warnings and turn them into errors." OFF)
+option(PTUNIT "Enable ptunit, a unit test system and libipt unit tests")
include_directories(
include
@@ -194,4 +195,7 @@
endif (CMAKE_HOST_UNIX)
add_subdirectory(libipt)
-add_subdirectory(ptunit)
+
+if (PTUNIT)
+ add_subdirectory(ptunit)
+endif (PTUNIT)
diff --git a/doc/howto_build.md b/doc/howto_build.md
index 8cc594f..f8fcb04 100755
--- a/doc/howto_build.md
+++ b/doc/howto_build.md
@@ -41,6 +41,17 @@
components, or optional build variants.
+### Optional Components
+
+By default, only the decoder library is built. Other components can be enabled
+by setting the respective cmake variable to ON.
+
+The following optional components are availble:
+
+ PTUNIT A simple unit test framework.
+ A collection of unit tests for libipt.
+
+
### Optional Features
Features are enabled by setting the respective FEATURE_<name> cmake variable.
diff --git a/libipt/CMakeLists.txt b/libipt/CMakeLists.txt
index c09a182..060a6ee 100644
--- a/libipt/CMakeLists.txt
+++ b/libipt/CMakeLists.txt
@@ -105,128 +105,131 @@
)
-add_executable(ptunit-last_ip
- test/src/ptunit-last_ip.c
- src/pt_last_ip.c
-)
+if (PTUNIT)
+ add_executable(ptunit-last_ip
+ test/src/ptunit-last_ip.c
+ src/pt_last_ip.c
+ )
-add_executable(ptunit-tnt_cache
- test/src/ptunit-tnt_cache.c
- src/pt_tnt_cache.c
-)
+ add_executable(ptunit-tnt_cache
+ test/src/ptunit-tnt_cache.c
+ src/pt_tnt_cache.c
+ )
-add_executable(ptunit-query
- test/src/ptunit-query.c
- src/pt_encoder.c
- src/pt_last_ip.c
- src/pt_packet_decoder.c
- src/pt_sync.c
- src/pt_tnt_cache.c
- src/pt_time.c
- src/pt_event_queue.c
- src/pt_query_decoder.c
- src/pt_packet.c
- src/pt_decoder_function.c
- src/pt_packet_decoder.c
- src/pt_config.c
- ${LIBIPT_SECTION_FILES}
- src/pt_time.c
-)
+ add_executable(ptunit-query
+ test/src/ptunit-query.c
+ src/pt_encoder.c
+ src/pt_last_ip.c
+ src/pt_packet_decoder.c
+ src/pt_sync.c
+ src/pt_tnt_cache.c
+ src/pt_time.c
+ src/pt_event_queue.c
+ src/pt_query_decoder.c
+ src/pt_packet.c
+ src/pt_decoder_function.c
+ src/pt_packet_decoder.c
+ src/pt_config.c
+ ${LIBIPT_SECTION_FILES}
+ src/pt_time.c
+ )
-add_executable(ptunit-cpp
- test/src/ptunit-cpp.cpp
-)
+ add_executable(ptunit-cpp
+ test/src/ptunit-cpp.cpp
+ )
-add_executable(ptunit-retstack
- test/src/ptunit-retstack.c
- src/pt_retstack.c
-)
+ add_executable(ptunit-retstack
+ test/src/ptunit-retstack.c
+ src/pt_retstack.c
+ )
-add_executable(ptunit-section
- test/src/ptunit-section.c
- ${LIBIPT_SECTION_FILES}
-)
+ add_executable(ptunit-section
+ test/src/ptunit-section.c
+ ${LIBIPT_SECTION_FILES}
+ )
-add_executable(ptunit-image
- test/src/ptunit-image.c
- src/pt_mapped_section.c
- src/pt_asid.c
- src/pt_image.c
-)
+ add_executable(ptunit-image
+ test/src/ptunit-image.c
+ src/pt_mapped_section.c
+ src/pt_asid.c
+ src/pt_image.c
+ )
-add_executable(ptunit-ild
- test/src/ptunit-ild.c
- src/pt_ild.c
-)
+ add_executable(ptunit-ild
+ test/src/ptunit-ild.c
+ src/pt_ild.c
+ )
-add_executable(ptunit-cpu
- test/src/ptunit-cpu.c
- src/pt_cpu.c
-)
+ add_executable(ptunit-cpu
+ test/src/ptunit-cpu.c
+ src/pt_cpu.c
+ )
-add_executable(ptunit-time
- test/src/ptunit-time.c
- src/pt_time.c
-)
+ add_executable(ptunit-time
+ test/src/ptunit-time.c
+ src/pt_time.c
+ )
-add_executable(ptunit-mapped_section
- test/src/ptunit-mapped_section.c
- src/pt_mapped_section.c
- src/pt_asid.c
-)
+ add_executable(ptunit-mapped_section
+ test/src/ptunit-mapped_section.c
+ src/pt_mapped_section.c
+ src/pt_asid.c
+ )
-add_executable(ptunit-asid
- test/src/ptunit-asid.c
- src/pt_asid.c
-)
+ add_executable(ptunit-asid
+ test/src/ptunit-asid.c
+ src/pt_asid.c
+ )
-add_executable(ptunit-event_queue
- test/src/ptunit-event_queue.c
- src/pt_event_queue.c
-)
+ add_executable(ptunit-event_queue
+ test/src/ptunit-event_queue.c
+ src/pt_event_queue.c
+ )
-add_executable(ptunit-packet
- test/src/ptunit-packet.c
- src/pt_encoder.c
- src/pt_packet_decoder.c
- src/pt_sync.c
- src/pt_packet.c
- src/pt_decoder_function.c
- src/pt_config.c
-)
+ add_executable(ptunit-packet
+ test/src/ptunit-packet.c
+ src/pt_encoder.c
+ src/pt_packet_decoder.c
+ src/pt_sync.c
+ src/pt_packet.c
+ src/pt_decoder_function.c
+ src/pt_config.c
+ )
-add_executable(ptunit-sync
- test/src/ptunit-sync.c
- src/pt_sync.c
- src/pt_packet.c
-)
+ add_executable(ptunit-sync
+ test/src/ptunit-sync.c
+ src/pt_sync.c
+ src/pt_packet.c
+ )
-add_executable(ptunit-fetch
- test/src/ptunit-fetch.c
- src/pt_decoder_function.c
- src/pt_encoder.c
- src/pt_config.c
-)
+ add_executable(ptunit-fetch
+ test/src/ptunit-fetch.c
+ src/pt_decoder_function.c
+ src/pt_encoder.c
+ src/pt_config.c
+ )
-add_executable(ptunit-config
- test/src/ptunit-config.c
- src/pt_config.c
-)
+ add_executable(ptunit-config
+ test/src/ptunit-config.c
+ src/pt_config.c
+ )
-target_link_libraries(ptunit-last_ip ptunit)
-target_link_libraries(ptunit-tnt_cache ptunit)
-target_link_libraries(ptunit-query ptunit)
-target_link_libraries(ptunit-cpp ptunit libipt)
-target_link_libraries(ptunit-retstack ptunit)
-target_link_libraries(ptunit-section ptunit)
-target_link_libraries(ptunit-image ptunit)
-target_link_libraries(ptunit-ild ptunit)
-target_link_libraries(ptunit-cpu ptunit)
-target_link_libraries(ptunit-time ptunit)
-target_link_libraries(ptunit-mapped_section ptunit)
-target_link_libraries(ptunit-asid ptunit)
-target_link_libraries(ptunit-event_queue ptunit)
-target_link_libraries(ptunit-packet ptunit)
-target_link_libraries(ptunit-sync ptunit)
-target_link_libraries(ptunit-fetch ptunit)
-target_link_libraries(ptunit-config ptunit)
+ target_link_libraries(ptunit-last_ip ptunit)
+ target_link_libraries(ptunit-tnt_cache ptunit)
+ target_link_libraries(ptunit-query ptunit)
+ target_link_libraries(ptunit-cpp ptunit libipt)
+ target_link_libraries(ptunit-retstack ptunit)
+ target_link_libraries(ptunit-section ptunit)
+ target_link_libraries(ptunit-image ptunit)
+ target_link_libraries(ptunit-ild ptunit)
+ target_link_libraries(ptunit-cpu ptunit)
+ target_link_libraries(ptunit-time ptunit)
+ target_link_libraries(ptunit-mapped_section ptunit)
+ target_link_libraries(ptunit-asid ptunit)
+ target_link_libraries(ptunit-event_queue ptunit)
+ target_link_libraries(ptunit-packet ptunit)
+ target_link_libraries(ptunit-sync ptunit)
+ target_link_libraries(ptunit-fetch ptunit)
+ target_link_libraries(ptunit-config ptunit)
+
+endif (PTUNIT)