diff --git a/CMakeLists.txt b/CMakeLists.txt index 74e79ee05fb0..2904f0bbf285 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,13 @@ -cmake_minimum_required(VERSION 3.12.0) -list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) -# keep this minimal. modify `cmake/main.cmake` file instead -if(NOT VECTORIZED_CMAKE_DIR) - include(main) -else() - include(${VECTORIZED_CMAKE_DIR}/main.cmake) +# Redirect control for internal Redpanda builds +if(REDPANDA_CMAKE_DIR) + cmake_minimum_required(VERSION 3.22) + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) + include(${REDPANDA_CMAKE_DIR}/main.cmake) + return() endif() + +cmake_minimum_required(VERSION 3.24) +project(redpanda LANGUAGES CXX) + +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) +include(main) diff --git a/build.sh b/build.sh index 4493e0e45abe..4e867f3494e5 100755 --- a/build.sh +++ b/build.sh @@ -30,7 +30,6 @@ cmake -DCMAKE_BUILD_TYPE=Release \ -GNinja \ -DCMAKE_C_COMPILER=$CC \ -DCMAKE_CXX_COMPILER=$CXX \ - -DCMAKE_GO_BINARY="$go" \ "$@" (cd "$root"/build && ninja) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index eecd145edda1..3ba833d7425e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,5 +4,6 @@ find_package(Boost REQUIRED iostreams unit_test_framework) find_package(absl REQUIRED) +find_program(GO_PROGRAM go REQUIRED) add_subdirectory(v) add_subdirectory(go/kreq-gen) diff --git a/src/go/kreq-gen/CMakeLists.txt b/src/go/kreq-gen/CMakeLists.txt index 290b981c4488..f022c7966006 100644 --- a/src/go/kreq-gen/CMakeLists.txt +++ b/src/go/kreq-gen/CMakeLists.txt @@ -2,11 +2,11 @@ set(GOPATH ${CMAKE_CURRENT_BINARY_DIR}) function(add_go_dependency NAME MAIN_SRC) get_filename_component(MAIN_SRC_ABS ${MAIN_SRC} ABSOLUTE) - add_custom_target(${NAME}) - add_custom_command(TARGET ${NAME} - COMMAND env GOPATH=${GOPATH} ${CMAKE_GO_BINARY} build + string(REPLACE "-" "_" target_name ${NAME}) + add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${NAME}" + COMMAND env GOPATH=${GOPATH} ${GO_PROGRAM} build -modcacherw -o "${CMAKE_CURRENT_BINARY_DIR}/${NAME}" - ${CMAKE_GO_FLAGS} ${MAIN_SRC} + ${MAIN_SRC} WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} DEPENDS ${MAIN_SRC_ABS}) add_custom_target(${NAME}_all ALL DEPENDS ${NAME}) diff --git a/tools/cmake_test.py b/tools/cmake_test.py index ce848546dd6c..212c12a09b0e 100755 --- a/tools/cmake_test.py +++ b/tools/cmake_test.py @@ -133,7 +133,7 @@ def _find_addr2lines(self): # Workstation: find our build directory by searching back from binary path_parts = self.binary.split("/") try: - vbuild = "/".join(path_parts[0:path_parts.index("vbuild") + 3]) + vbuild = "/".join(path_parts[0:path_parts.index("vbuild") + 5]) except (ValueError, IndexError): sys.stderr.write( f"Could not find vbuild in binary path {self.binary}\n") @@ -141,7 +141,7 @@ def _find_addr2lines(self): else: location = os.path.join( vbuild, - "v_deps_build/seastar-prefix/src/seastar/scripts/seastar-addr2line" + "deps_build/seastar-prefix/src/seastar/scripts/seastar-addr2line" ) if not os.path.exists(location):