Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions .github/workflows/CI-unixish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ jobs:
- name: Run CMake install
run: |
cmake --build cmake.output --target install
# TODO: validate the installed files

- name: Run CMake on ubuntu (no CLI)
if: matrix.os == 'ubuntu-22.04'
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/CI-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ defaults:

jobs:

# TODO: use Debug build to speed it up?
build_qt:
strategy:
matrix:
Expand Down Expand Up @@ -68,7 +69,10 @@ jobs:

- name: Run CMake install
run: |
rem TODO: this performs a Debug build
rem TODO: the Qt DLLS are not being installed (because of the missing windeployqt?)
cmake --build build --target install
rem TODO: validate the installed files

build_cmake_cxxstd:
strategy:
Expand Down
17 changes: 11 additions & 6 deletions cli/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,27 +40,32 @@ if (BUILD_CLI)
endif()

install(TARGETS cppcheck
RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT applications)

install(PROGRAMS ${CMAKE_SOURCE_DIR}/htmlreport/cppcheck-htmlreport
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}
DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT applications)

# TODO: leverage CMAKE_INSTALL_DATAROOTDIR (share)?

install(FILES ${addons_py}
DESTINATION ${FILESDIR_DEF}/addons
DESTINATION ${FILESDIR_INSTALL}/addons
COMPONENT headers)

install(FILES ${addons_json}
DESTINATION ${FILESDIR_DEF}/addons
DESTINATION ${FILESDIR_INSTALL}/addons
COMPONENT headers)

install(FILES ${cfgs}
DESTINATION ${FILESDIR_DEF}/cfg
DESTINATION ${FILESDIR_INSTALL}/cfg
COMPONENT headers)

install(FILES ${platforms}
DESTINATION ${FILESDIR_DEF}/platforms
DESTINATION ${FILESDIR_INSTALL}/platforms
COMPONENT headers)

# TODO: install manpage into CMAKE_INSTALL_MANDIR
# TODO: install documentation into CMAKE_INSTALL_DOCDIR?

endif()
8 changes: 6 additions & 2 deletions cmake/options.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -134,18 +134,22 @@ set(CMAKE_DISABLE_PRECOMPILE_HEADERS Off CACHE BOOL "Disable precompiled headers
# see https://gitlab.kitware.com/cmake/cmake/-/issues/21219
set(CMAKE_PCH_PROLOGUE "")

# TODO: do we need to set these?
set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE ${CMAKE_INSTALL_PREFIX}/include CACHE PATH "Output directory for headers")
set(CMAKE_LIB_DIRS_CONFIGCMAKE ${CMAKE_INSTALL_PREFIX}/lib CACHE PATH "Output directory for libraries")

# TODO: do we need to set these?
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)

string(LENGTH "${FILESDIR}" _filesdir_len)
# override FILESDIR if it is set or empty
# needs to be an absolute path in Cppcheck but a relative one for CMake install
if(FILESDIR OR ${_filesdir_len} EQUAL 0)
# TODO: verify that it is an absolute path?
set(FILESDIR_INSTALL "${FILESDIR}") # TODO: make relative - leverage CMAKE_INSTALL_DATAROOTDIR?
set(FILESDIR_DEF "${FILESDIR}")
else()
set(FILESDIR_DEF ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME} CACHE STRING "Cppcheck files directory")
set(FILESDIR_INSTALL "share/${PROJECT_NAME}")
set(FILESDIR_DEF "${CMAKE_INSTALL_PREFIX}/${FILESDIR_INSTALL}")
endif()
2 changes: 2 additions & 0 deletions cmake/printInfo.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ message(STATUS "Compiler Version = ${CMAKE_CXX_COMPILER_VERSION}")
message(STATUS "Build type = ${CMAKE_BUILD_TYPE}")
message(STATUS "CMake C++ Standard = ${CMAKE_CXX_STANDARD}")
message(STATUS "CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}")
message(STATUS "CMAKE_INSTALL_BINDIR = ${CMAKE_INSTALL_BINDIR}")
message(STATUS "CMAKE_DISABLE_PRECOMPILE_HEADERS = ${CMAKE_DISABLE_PRECOMPILE_HEADERS}")
message(STATUS "C++ flags (General) = ${CMAKE_CXX_FLAGS}")
message(STATUS "C++ flags (Release) = ${CMAKE_CXX_FLAGS_RELEASE}")
Expand Down Expand Up @@ -109,6 +110,7 @@ message(STATUS)
message(STATUS "USE_LIBCXX = ${USE_LIBCXX}")
message(STATUS)
message(STATUS "FILESDIR = ${FILESDIR}")
message(STATUS "FILESDIR_INSTALL = ${FILESDIR_INSTALL}")
message(STATUS "FILESDIR_DEF = ${FILESDIR_DEF}")
message(STATUS)

Expand Down
4 changes: 2 additions & 2 deletions gui/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ CheckOptions:
add_dependencies(cppcheck-gui online-help.qhc)
endif()

install(TARGETS cppcheck-gui RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT applications)
install(FILES ${qms} DESTINATION ${CMAKE_INSTALL_FULL_BINDIR} COMPONENT applications)
install(TARGETS cppcheck-gui RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT applications)
install(FILES ${qms} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT applications)

install(FILES cppcheck-gui.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)

Expand Down
Loading