Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
9cc1ad1
Point14 & RGB14
ryanstocks00 Oct 30, 2025
7170c5a
Inititial layered encoding, lots of compilation issues
ryanstocks00 Oct 31, 2025
820c15d
Laz 1.4 passing tests
ryanstocks00 Oct 31, 2025
50d0225
Multi-layer encode/decode self consistent
ryanstocks00 Nov 1, 2025
fbd806f
GPS encoding symmetric, point14 not interop
ryanstocks00 Nov 1, 2025
ee07897
Point14 interop, RGB14 not
ryanstocks00 Nov 1, 2025
9b7b14b
Removing static context
ryanstocks00 Nov 1, 2025
015872a
Minor improvements
ryanstocks00 Nov 1, 2025
a0f5ee7
Passing interop tests
ryanstocks00 Nov 2, 2025
1792174
Improved las header and interop tests
ryanstocks00 Nov 2, 2025
f0e1491
Successfully reading point format 7
ryanstocks00 Nov 3, 2025
9f2efe2
Different includes for laszip
ryanstocks00 Nov 3, 2025
9d45a25
Fixing laszip warnings
ryanstocks00 Nov 3, 2025
65a57bb
Hopefully fixing some windows compilation issues
ryanstocks00 Nov 3, 2025
c93860d
Remove UB reading from unaligned struct
ryanstocks00 Nov 3, 2025
d21a122
More UB fixes
ryanstocks00 Nov 3, 2025
d33afa4
Improved laszip compile windows
ryanstocks00 Nov 3, 2025
410f356
Fix windows stack overflow
ryanstocks00 Nov 3, 2025
1e4f2c0
Fix lack of destruction with coverage
ryanstocks00 Nov 3, 2025
ecb1264
Fixing codacy errors
ryanstocks00 Nov 4, 2025
8788f62
Test reader against laszip and general cleanup
ryanstocks00 Nov 4, 2025
3f2fb7c
Improved laszip import and removed UB from random number generation
ryanstocks00 Nov 4, 2025
6c4edd4
Refactored and fixed laz writer for point format 6
ryanstocks00 Nov 5, 2025
8fde037
Ignore apps folder codecov
ryanstocks00 Nov 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/cmake-multi-platform.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ on:
jobs:
build:
runs-on: ${{ matrix.os }}
timeout-minutes: 2
timeout-minutes: 5
strategy:
fail-fast: false
matrix:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ on:
jobs:
codecov:
runs-on: ubuntu-latest
timeout-minutes: 3
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: Set reusable strings
Expand All @@ -40,7 +40,7 @@ jobs:
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config Coverage -j 2
- name: Test
working-directory: ${{ steps.strings.outputs.build-output-dir }}
run: ctest --build-config Coverage
run: ctest --build-config Coverage --output-on-failure
- name: Coverage
working-directory: ${{ steps.strings.outputs.build-output-dir }}
run: ctest --build-config Coverage -T Coverage
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ on:
jobs:
pre-commit:
runs-on: ubuntu-latest
timeout-minutes: 2
timeout-minutes: 3
steps:
- uses: actions/checkout@v4
- name: Install pre-commit
Expand Down
60 changes: 55 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,8 @@ project(
set(COPYRIGHT "Copyright (c) 2024 Trailblaze Software. All rights reserved.")

if(LASPP_BUILD_TESTS)
# include(FetchContent) FetchContent_Declare( laszip GIT_REPOSITORY
# https://github.com/LASzip/LASzip.git GIT_TAG 3.4.4)
# FetchContent_MakeAvailable(laszip)
include(cmake/SetupLaszip.cmake)
setup_laszip()
endif()

set(CMAKE_CXX_FLAGS_PROFILE "-O3 -g -pg")
Expand Down Expand Up @@ -75,7 +74,9 @@ if(WIN32)
"/wd4711"
"/wd4625"
"/wd5026"
"/wd5246")
"/wd5246"
"/wd4127"
"/wd4061")
endif()
elseif(UNIX)
if(NOT CMAKE_BUILD_TYPE MATCHES "Release")
Expand Down Expand Up @@ -135,7 +136,15 @@ if(LASPP_BUILD_TESTS)
include(CTest)
enable_testing()

file(GLOB_RECURSE TEST_SOURCES "test*.cpp")
file(GLOB_RECURSE UNFILTERED_TEST_SOURCES "${CMAKE_SOURCE_DIR}/*test*.cpp")

# Filter to only those under a 'tests' directory
set(SOURCES "")
foreach(path ${UNFILTERED_TEST_SOURCES})
if(path MATCHES "/tests/")
list(APPEND TEST_SOURCES "${path}")
endif()
endforeach()
message(STATUS "Test sources: ${TEST_SOURCES}")

foreach(TEST_SOURCE ${TEST_SOURCES})
Expand All @@ -146,6 +155,47 @@ if(LASPP_BUILD_TESTS)
target_compile_definitions(${TEST_NAME} PRIVATE LASPP_DEBUG_ASSERTS)
endforeach()

if(TARGET test_laszip_interop)
FetchContent_GetProperties(laszip)
if(NOT laszip_POPULATED)
message(
FATAL_ERROR
"laszip FetchContent properties not found. Call setup_laszip() first."
)
endif()
# laszipper.cpp and lasunzipper.cpp are wrapper files that need internal
# laszip symbols
file(GLOB LASZIP_WRAPPER_SOURCES "${laszip_SOURCE_DIR}/src/laszipper.cpp"
"${laszip_SOURCE_DIR}/src/lasunzipper.cpp")

# Add wrapper files as sources to the test
target_sources(test_laszip_interop PRIVATE ${LASZIP_WRAPPER_SOURCES})

# Link against laszip
link_target_to_laszip(test_laszip_interop)

# Suppress warnings from laszip wrapper source files
if(MSVC)
set_source_files_properties(
${LASZIP_WRAPPER_SOURCES} PROPERTIES COMPILE_FLAGS
"/wd4774 /wd4062 /wd4100")
else()
set_source_files_properties(
${LASZIP_WRAPPER_SOURCES}
PROPERTIES
COMPILE_FLAGS
"-Wno-old-style-cast -Wno-shadow -Wno-sign-conversion -Wno-conversion"
)
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set_source_files_properties(
${LASZIP_WRAPPER_SOURCES}
PROPERTIES
COMPILE_FLAGS
"-Wno-old-style-cast -Wno-shadow -Wno-sign-conversion -Wno-conversion -Wno-useless-cast"
)
endif()
endif()
endif()
endif()

include(GNUInstallDirs)
Expand Down
17 changes: 17 additions & 0 deletions apps/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,20 @@ install(
TARGETS ${LAS2LAS++_EXE_NAME}
DESTINATION bin
COMPONENT applications)

if(LASPP_BUILD_TESTS)
# Test application for comparing LAS++ and LASzip
set(TEST_LASPP_LASZIP_EXE_NAME test_laspp_laszip)

add_executable(${TEST_LASPP_LASZIP_EXE_NAME} test_laspp_laszip.cpp)

target_link_libraries(${TEST_LASPP_LASZIP_EXE_NAME}
PRIVATE ${LIBRARY_NAME} OpenMP::OpenMP_CXX)

link_target_to_laszip(${TEST_LASPP_LASZIP_EXE_NAME})

install(
TARGETS ${TEST_LASPP_LASZIP_EXE_NAME}
DESTINATION bin
COMPONENT applications)
endif()
Loading