Skip to content
Merged
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
36 changes: 35 additions & 1 deletion .github/workflows/release-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ jobs:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_GUI=On -DUSE_QT6=On -DWITH_QCHART=On -DBUILD_ONLINE_HELP=On || exit /b !errorlevel!
cmake --build build --target cppcheck-gui --config Release || exit /b !errorlevel!

# TODO: package PDBs
- name: Deploy app
run: |
windeployqt build\bin\Release || exit /b !errorlevel!
Expand All @@ -103,24 +104,48 @@ jobs:
name: bin
path: bin

- name: Compile misra.py executable
- name: Install missing Python packages
run: |
pip install -U pyinstaller || exit /b !errorlevel!

# TODO: include in installer?
- name: Compile misra.py executable
run: |
cd addons || exit /b !errorlevel!
pyinstaller --hidden-import xml --hidden-import xml.etree --hidden-import xml.etree.ElementTree misra.py || exit /b !errorlevel!
del *.spec || exit /b !errorlevel!

# TODO: include in installer?
- name: Compile cppcheck-htmlreport executable
run: |
cd htmlreport || exit /b !errorlevel!
pyinstaller cppcheck-htmlreport || exit /b !errorlevel!
del *.spec || exit /b !errorlevel!

# TODO: test the compiled Python files

- name: Collect files
run: |
@echo on
move build\bin\Release win_installer\files || exit /b !errorlevel!
copy AUTHORS win_installer\files\authors.txt || exit /b !errorlevel!
copy readme.txt win_installer\files\ || exit /b !errorlevel!
copy win_installer\GPLv3.txt win_installer\files\ || exit /b !errorlevel!
copy externals\picojson\LICENSE win_installer\files\picojson-license.txt || exit /b !errorlevel!
copy externals\simplecpp\LICENSE win_installer\files\simplecpp-license.txt || exit /b !errorlevel!
copy externals\tinyxml2\LICENSE win_installer\files\tinyxml2-license.txt || exit /b !errorlevel!
copy addons\dist\misra\*.* win_installer\files\addons || exit /b !errorlevel!
copy bin\cppcheck.exe win_installer\files || exit /b !errorlevel!
copy bin\cppcheck-core.dll win_installer\files || exit /b !errorlevel!
:: mkdir win_installer\files\help || exit /b !errorlevel!
xcopy /s gui\help win_installer\files\help || exit /b !errorlevel!
copy gui\help\online-help.qhc win_installer\files\ || exit /b !errorlevel!
copy gui\help\online-help.qch win_installer\files\ || exit /b !errorlevel!
del win_installer\files\cfg\*.rng || exit /b !errorlevel!
del win_installer\files\platforms\*.rng || exit /b !errorlevel!
del win_installer\files\translations\*.qm || exit /b !errorlevel!
move build\gui\*.qm win_installer\files\translations || exit /b !errorlevel!
copy htmlreport\dist\cppcheck-htmlreport\*.* win_installer\files || exit /b !errorlevel!
:: copy libcrypto-3-x64.dll and libssl-3-x64.dll
copy %RUNNER_WORKSPACE%\Qt\Tools\OpenSSLv3\Win_x64\bin\lib*.dll win_installer\files || exit /b !errorlevel!

Expand Down Expand Up @@ -148,16 +173,25 @@ jobs:
run: |
@echo on
:: del win_installer\files\addons\*.dll || exit /b !errorlevel!
del win_installer\files\addons\*.doxyfile || exit /b !errorlevel!
del win_installer\files\addons\*.md || exit /b !errorlevel!
:: del win_installer\files\addons\*.pyd || exit /b !errorlevel!
:: del win_installer\files\addons\base_library.zip || exit /b !errorlevel!
rmdir /s /q win_installer\files\addons\test || exit /b !errorlevel!
rmdir /s /q win_installer\files\addons\doc || exit /b !errorlevel!
:: rmdir /s /q win_installer\files\bearer || exit /b !errorlevel!
rmdir /s /q win_installer\files\generic || exit /b !errorlevel!
rmdir /s /q win_installer\files\help || exit /b !errorlevel!
rmdir /s /q win_installer\files\iconengines || exit /b !errorlevel!
rmdir /s /q win_installer\files\imageformats || exit /b !errorlevel!
rmdir /s /q win_installer\files\networkinformation || exit /b !errorlevel!
:: rmdir /s /q win_installer\files\printsupport || exit /b !errorlevel!
rmdir /s /q win_installer\files\sqldrivers || exit /b !errorlevel!
rmdir /s /q win_installer\files\tls || exit /b !errorlevel!
ren win_installer\files\translations lang || exit /b !errorlevel!
del win_installer\files\d3dcompiler_47.dll || exit /b !errorlevel!
del win_installer\files\dxcompiler.dll || exit /b !errorlevel!
del win_installer\files\dxil.dll || exit /b !errorlevel!
del win_installer\files\dmake.exe || exit /b !errorlevel!
del win_installer\files\dmake.pdb || exit /b !errorlevel!
:: del win_installer\files\libEGL.dll || exit /b !errorlevel!
Expand Down
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -113,3 +113,9 @@ compile_commands.json

# GDB configuration
.gdbinit

# pyinstaller output
/addons/dist
/addons/misra.spec
/htmlreport/cppcheck-htmlreport.spec
/htmlreport/dist
4 changes: 3 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ endif()
include(cmake/printInfo.cmake)


file(GLOB addons "addons/*.py")
file(GLOB addons_py "addons/*.py")
file(GLOB addons_json "addons/*.json")
file(GLOB cfgs "cfg/*.cfg")
file(GLOB platforms "platforms/*.xml")

Expand Down Expand Up @@ -85,6 +86,7 @@ add_custom_target(copy_cfg ALL
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/cfg"
COMMENT "Copying cfg files to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}")

# TODO: copy *.py and *.json only
add_custom_target(copy_addons ALL
${CMAKE_COMMAND} -E copy_directory "${PROJECT_SOURCE_DIR}/addons"
"${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/addons"
Expand Down
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,7 @@ install: cppcheck
ifdef FILESDIR
install -d ${DESTDIR}${FILESDIR}
install -d ${DESTDIR}${FILESDIR}/addons
install -m 644 addons/*.json ${DESTDIR}${FILESDIR}/addons
install -m 644 addons/*.py ${DESTDIR}${FILESDIR}/addons
install -d ${DESTDIR}${FILESDIR}/cfg
install -m 644 cfg/*.cfg ${DESTDIR}${FILESDIR}/cfg
Expand Down
10 changes: 9 additions & 1 deletion cli/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,15 @@ if (BUILD_CLI)
RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}
COMPONENT applications)

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

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

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

Expand Down
12 changes: 8 additions & 4 deletions lib/cppcheck.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,8 @@
<LargeAddressAware>true</LargeAddressAware>
</Link>
<PostBuildEvent>
<Command>xcopy "$(SolutionDir)addons" "$(OutDir)addons" /E /I /D /Y
<Command>xcopy "$(SolutionDir)addons/*.py" "$(OutDir)addons" /E /I /D /Y
xcopy "$(SolutionDir)addons/*.json" "$(OutDir)addons" /E /I /D /Y
xcopy "$(SolutionDir)cfg" "$(OutDir)cfg" /E /I /D /Y
xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y</Command>
</PostBuildEvent>
Expand Down Expand Up @@ -310,7 +311,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y</Command>
<LargeAddressAware>true</LargeAddressAware>
</Link>
<PostBuildEvent>
<Command>xcopy "$(SolutionDir)addons" "$(OutDir)addons" /E /I /D /Y
<Command>xcopy "$(SolutionDir)addons/*.py" "$(OutDir)addons" /E /I /D /Y
xcopy "$(SolutionDir)addons/*.json" "$(OutDir)addons" /E /I /D /Y
xcopy "$(SolutionDir)cfg" "$(OutDir)cfg" /E /I /D /Y
xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y</Command>
</PostBuildEvent>
Expand Down Expand Up @@ -350,7 +352,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y</Command>
<LargeAddressAware>true</LargeAddressAware>
</Link>
<PostBuildEvent>
<Command>xcopy "$(SolutionDir)addons" "$(OutDir)addons" /E /I /D /Y
<Command>xcopy "$(SolutionDir)addons/*.py" "$(OutDir)addons" /E /I /D /Y
xcopy "$(SolutionDir)addons/*.json" "$(OutDir)addons" /E /I /D /Y
xcopy "$(SolutionDir)cfg" "$(OutDir)cfg" /E /I /D /Y
xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y</Command>
</PostBuildEvent>
Expand Down Expand Up @@ -391,7 +394,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y</Command>
<LargeAddressAware>true</LargeAddressAware>
</Link>
<PostBuildEvent>
<Command>xcopy "$(SolutionDir)addons" "$(OutDir)addons" /E /I /D /Y
<Command>xcopy "$(SolutionDir)addons/*.py" "$(OutDir)addons" /E /I /D /Y
xcopy "$(SolutionDir)addons/*.json" "$(OutDir)addons" /E /I /D /Y
xcopy "$(SolutionDir)cfg" "$(OutDir)cfg" /E /I /D /Y
xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y</Command>
</PostBuildEvent>
Expand Down
1 change: 1 addition & 0 deletions tools/dmake/dmake.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -773,6 +773,7 @@ int main(int argc, char **argv)
fout << "ifdef FILESDIR\n";
fout << "\tinstall -d ${DESTDIR}${FILESDIR}\n";
fout << "\tinstall -d ${DESTDIR}${FILESDIR}/addons\n";
fout << "\tinstall -m 644 addons/*.json ${DESTDIR}${FILESDIR}/addons\n";
fout << "\tinstall -m 644 addons/*.py ${DESTDIR}${FILESDIR}/addons\n";
fout << "\tinstall -d ${DESTDIR}${FILESDIR}/cfg\n";
fout << "\tinstall -m 644 cfg/*.cfg ${DESTDIR}${FILESDIR}/cfg\n";
Expand Down
3 changes: 2 additions & 1 deletion win_installer/cppcheck.wxs
Original file line number Diff line number Diff line change
Expand Up @@ -155,15 +155,16 @@
</Directory>
<Directory Id='AddonsFolder' Name='addons'>
<Component Id='Addons' Guid='$(var.addonsGUID)'>
<File Id='__init__.py' Name='__init__.py' Source='$(var.AddonsDir)\__init__.py' />
<File Id='cppcheck.py' Name='cppcheck.py' Source='$(var.AddonsDir)\cppcheck.py' />
<File Id='cppcheckdata.py' Name='cppcheckdata.py' Source='$(var.AddonsDir)\cppcheckdata.py' />
<File Id='findcasts.py' Name='findcasts.py' Source='$(var.AddonsDir)\findcasts.py' />
<File Id='misc.py' Name='misc.py' Source='$(var.AddonsDir)\misc.py' />
<File Id='misra.py' Name='misra.py' Source='$(var.AddonsDir)\misra.py' />
<File Id='misra_9.py' Name='misra_9.py' Source='$(var.AddonsDir)\misra_9.py' />
<File Id='naming.py' Name='naming.py' Source='$(var.AddonsDir)\naming.py' />
<File Id='namingng.json' Name='namingng.json' Source='$(var.AddonsDir)\namingng.json' />
<File Id='namingng.config.json' Name='namingng.config.json' Source='$(var.AddonsDir)\namingng.config.json' />
<File Id='naming.py' Name='naming.py' Source='$(var.AddonsDir)\naming.py' />
<File Id='namingng.py' Name='namingng.py' Source='$(var.AddonsDir)\namingng.py' />
<File Id='ROS_naming.json' Name='ROS_naming.json' Source='$(var.AddonsDir)\ROS_naming.json' />
<File Id='runaddon.py' Name='runaddon.py' Source='$(var.AddonsDir)\runaddon.py' />
Expand Down
Loading