11cmake_minimum_required (VERSION 3.20 )
22
3+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR )
4+ message (FATAL_ERROR
5+ "In-source builds are not supported. Configure with: cmake -S . -B build" )
6+ endif ()
7+
38project (openmoq_publisher
49 VERSION 0.1.0
510 DESCRIPTION "OpenMOQ contribution project: C++20 publisher for fragmented MP4 to CMSF/MOQT"
@@ -13,8 +18,18 @@ option(OPENMOQ_BUILD_TESTS "Build OpenMOQ publisher tests" ON)
1318option (OPENMOQ_ENABLE_PICOQUIC "Enable picoquic transport integration when picoquic is available" ON )
1419option (OPENMOQ_RUN_PICOQUIC_SMOKE_TESTS "Build and run picoquic loopback smoke tests" OFF )
1520
16- set (OPENMOQ_PICOQUIC_SOURCE_DIR "" CACHE PATH
17- "Path to a picoquic source checkout" )
21+ set (_OPENMOQ_THIRDPARTY_ROOT "${CMAKE_CURRENT_SOURCE_DIR } /third_party" )
22+ if (NOT EXISTS "${_OPENMOQ_THIRDPARTY_ROOT} " )
23+ set (_OPENMOQ_THIRDPARTY_ROOT "${CMAKE_CURRENT_SOURCE_DIR } /thirdparty" )
24+ endif ()
25+
26+ set (_OPENMOQ_DEFAULT_PICOQUIC_SOURCE_DIR "${_OPENMOQ_THIRDPARTY_ROOT} /picoquic" )
27+ set (_OPENMOQ_DEFAULT_PICOTLS_SOURCE_DIR "${_OPENMOQ_THIRDPARTY_ROOT} /picotls" )
28+
29+ set (OPENMOQ_PICOQUIC_SOURCE_DIR "${_OPENMOQ_DEFAULT_PICOQUIC_SOURCE_DIR } " CACHE PATH
30+ "Path to a picoquic source checkout (defaults to third_party/ or thirdparty/)" )
31+ set (OPENMOQ_PICOTLS_SOURCE_DIR "${_OPENMOQ_DEFAULT_PICOTLS_SOURCE_DIR } " CACHE PATH
32+ "Path to a picotls source checkout (defaults to third_party/ or thirdparty/)" )
1833
1934set (OPENMOQ_HAS_PICOQUIC OFF )
2035
@@ -39,9 +54,6 @@ function(openmoq_sanitize_target_link_directories target_name)
3954endfunction ()
4055
4156if (OPENMOQ_ENABLE_PICOQUIC AND EXISTS "${OPENMOQ_PICOQUIC_SOURCE_DIR } /CMakeLists.txt" )
42- set (OPENMOQ_PICOTLS_SOURCE_DIR "${OPENMOQ_PICOQUIC_SOURCE_DIR } /../picotls" CACHE PATH
43- "Path to a picotls source checkout" )
44-
4557 if (EXISTS "${OPENMOQ_PICOTLS_SOURCE_DIR } /CMakeLists.txt" )
4658 # picotls still declares CMake 2.8 compatibility; newer CMake releases
4759 # require an explicit policy floor when configuring that subproject.
0 commit comments