Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add CMake-format pre-commit hooks and linters #771

Merged
merged 43 commits into from Aug 31, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
ea7ac9e
Make all ipynb work locally
Skylion007 Aug 26, 2020
a5bd624
Add path classifiers to .lgtm
Skylion007 Aug 26, 2020
6c61336
Remove unncessary glob
Skylion007 Aug 26, 2020
785c924
Update black and lint repo
Skylion007 Aug 26, 2020
9d6259c
Sort yaml
Skylion007 Aug 26, 2020
8185dd7
Enable flake8-bugbear plugin
Skylion007 Aug 27, 2020
d576a43
Fix a few more flake8-bugbear errors
Skylion007 Aug 27, 2020
5171f8f
Attempt to add pre-commit hooks to .circleci
Skylion007 Aug 27, 2020
45365b4
Add job to .circleci
Skylion007 Aug 27, 2020
2b22e96
Merge branch 'master' of https://github.com/facebookresearch/habitat-…
Skylion007 Aug 27, 2020
e46071f
Add system dependencies for pre-commit
Skylion007 Aug 27, 2020
4fb11df
Skip system hooks
Skylion007 Aug 27, 2020
c0a96bd
fix typo
Skylion007 Aug 27, 2020
5860b6d
Fix .circleci
Skylion007 Aug 27, 2020
4fde8d8
Black notebooks
Skylion007 Aug 27, 2020
73a7718
Remove unused variable and fix clang-format
Skylion007 Aug 27, 2020
bed02e0
Remove another unused variable
Skylion007 Aug 27, 2020
02fc3b6
Fix bugs in AttributeManager
Skylion007 Aug 27, 2020
a88e6d2
Fix set comprehensions
Skylion007 Aug 27, 2020
c61f65c
Merge branch 'master' of https://github.com/facebookresearch/habitat-…
Skylion007 Aug 27, 2020
d3d43cf
Fix EOF
Skylion007 Aug 27, 2020
be1a5fe
revert sim bindings
Skylion007 Aug 27, 2020
ee6635f
Fix true false errors
Skylion007 Aug 27, 2020
f476e4d
Ignore C408
Skylion007 Aug 28, 2020
f2e43de
Ignore C402 and C403
Skylion007 Aug 28, 2020
0b6acb8
Meant C401 and C402
Skylion007 Aug 28, 2020
faaabf9
Merge branch 'master' of https://github.com/facebookresearch/habitat-…
Skylion007 Aug 28, 2020
f90362b
Add cmake-format pre-commit hook and cicheck
Skylion007 Aug 28, 2020
caaa5b6
Commit cmake-format config
Skylion007 Aug 28, 2020
9d35cf9
Fix typos and add missing cmake-formats
Skylion007 Aug 28, 2020
ef760bd
Update cmake-format to ignore Find CMake files
Skylion007 Aug 28, 2020
f11cfbc
Merge branch 'master' of https://github.com/facebookresearch/habitat-…
Skylion007 Aug 28, 2020
de3423b
Adjust cmake-format settings
Skylion007 Aug 31, 2020
bc2f20b
Simplify cmake-format to better match our preferences.
Skylion007 Aug 31, 2020
bf7c3ff
Clean up .pre-commit and cmake-format
Skylion007 Aug 31, 2020
9c309ea
enable autosort cmake-format feature
Skylion007 Aug 31, 2020
1c36627
Attempt to fix pre-commit hooks
Skylion007 Aug 31, 2020
ffa5609
Changed config to mosra's specification
Skylion007 Aug 31, 2020
ca75cf2
always wrap add_library too
Skylion007 Aug 31, 2020
e1d4391
reduce min indent to two
Skylion007 Aug 31, 2020
10edaad
always wrap find_package
Skylion007 Aug 31, 2020
b2d1571
revert find_package
Skylion007 Aug 31, 2020
4d91651
final config tweaks
Skylion007 Aug 31, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
14 changes: 14 additions & 0 deletions .cmake-format.py
@@ -0,0 +1,14 @@
# flake8: noqa
with section("format"):
line_width = 88 # Give a little more length
max_pargs_hwrap = 5
max_subgroups_hwrap = 3 # So set commands dont get wrapped
min_prefix_chars = 2
dangle_parens = True # Dangle Parens to make diffs cleaner
always_wrap = [
"add_library",
"target_link_libraries",
] # Always wrap these ones
autosort = True # Try to autosort lists
with section("markup"):
enable_markup = False # Don't format comments
7 changes: 7 additions & 0 deletions .pre-commit-config.yaml
Expand Up @@ -68,6 +68,7 @@ repos:
- 'isort==5.4.2'
always_run: false
language: python
require_serial: true

- repo: local
hooks:
Expand All @@ -79,6 +80,12 @@ repos:
files: '.*\.(cpp|h|hpp|cu|cuh)$'
language: system

- repo: https://github.com/cheshirekow/cmake-format-precommit
rev: v0.6.13
hooks:
- id: cmake-format
exclude: (^src/(cmake/Find|deps)|configure\.h\.cmake$)

- repo: https://github.com/pre-commit/mirrors-eslint
rev: v6.4.0
hooks:
Expand Down
23 changes: 15 additions & 8 deletions src/CMakeLists.txt
Expand Up @@ -4,7 +4,9 @@

cmake_minimum_required(VERSION 3.10)

option(BUILD_WITH_CUDA "Build Habitat-Sim with CUDA features enabled -- Requires CUDA" OFF)
option(BUILD_WITH_CUDA "Build Habitat-Sim with CUDA features enabled -- Requires CUDA"
OFF
)

if(BUILD_WITH_CUDA)
project(esp LANGUAGES C CXX CUDA)
Expand All @@ -19,8 +21,8 @@ endif()

find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
endif()

set(SCENE_DATASETS ${CMAKE_CURRENT_SOURCE_DIR}/../data/scene_datasets)
Expand All @@ -31,7 +33,9 @@ option(BUILD_PYTHON_BINDINGS "Whether to build python bindings" ON)
option(BUILD_DATATOOL "Whether to build datatool utility binary" ON)
option(BUILD_PTEX_SUPPORT "Whether to build ptex mesh support" ON)
option(BUILD_GUI_VIEWERS "Whether to build GUI viewer utility binary" OFF)
option(BUILD_WITH_BULLET "Build Habitat-Sim with Bullet physics enabled -- Requires Bullet" OFF)
option(BUILD_WITH_BULLET
"Build Habitat-Sim with Bullet physics enabled -- Requires Bullet" OFF
)
option(BUILD_TEST "Build test binaries" OFF)
option(USE_SYSTEM_ASSIMP "Use system Assimp instead of a bundled submodule" OFF)
option(USE_SYSTEM_EIGEN "Use system Eigen instead of a bundled submodule" OFF)
Expand All @@ -40,14 +44,17 @@ option(USE_SYSTEM_MAGNUM "Use system Magnum instead of a bundled submodule" OFF)
option(USE_SYSTEM_PYBIND11 "Use system Pybind11 instead of a bundled submodule" OFF)
option(USE_SYSTEM_RAPIDJSON "Use system RapidJSON instead of a bundled submodule" OFF)


set(CMAKE_CXX_STANDARD 14)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
"Choose build, options are: None Debug Release RelWithDebInfo MinSizeRel"
FORCE)
set(
CMAKE_BUILD_TYPE
RelWithDebInfo
CACHE STRING
"Choose build, options are: None Debug Release RelWithDebInfo MinSizeRel"
FORCE
)
endif()
# avoid ld visibility warnings, should be done by CMAKE_CXX_VISIBILITY_PRESET
# but need cmake_policy(SET CMP0063 NEW) also which seems to not work
Expand Down
46 changes: 31 additions & 15 deletions src/cmake/dependencies.cmake
Expand Up @@ -98,19 +98,18 @@ set(RECASTNAVIGATION_STATIC ON CACHE BOOL "RECASTNAVIGATION_STATIC" FORCE)
add_subdirectory("${DEPS_DIR}/recastnavigation/Recast")
add_subdirectory("${DEPS_DIR}/recastnavigation/Detour")
# Needed so that Detour doesn't hide the implementation of the method on dtQueryFilter
target_compile_definitions(Detour
PUBLIC
DT_VIRTUAL_QUERYFILTER)
target_compile_definitions(Detour PUBLIC DT_VIRTUAL_QUERYFILTER)

if(BUILD_PYTHON_BINDINGS)
# Before calling find_package(PythonInterp) search for python executable not
# in the default paths to pick up activated virtualenv/conda python
find_program(PYTHON_EXECUTABLE
find_program(
PYTHON_EXECUTABLE
# macOS still defaults to `python` being Python 2, so look for `python3`
# first
NAMES python3 python
PATHS ENV PATH # look in the PATH environment variable
NO_DEFAULT_PATH # do not look anywhere else...
PATHS ENV PATH # look in the PATH environment variable
NO_DEFAULT_PATH # do not look anywhere else...
)

# Let the Find module do proper version checks on what we found (it uses the
Expand Down Expand Up @@ -141,7 +140,7 @@ if(NOT USE_SYSTEM_MAGNUM)

# These are not enabled by default but we need them
set(WITH_ANYSCENEIMPORTER ON CACHE BOOL "WITH_ANYSCENEIMPORTER" FORCE)
if (BUILD_ASSIMP_SUPPORT)
if(BUILD_ASSIMP_SUPPORT)
set(WITH_ASSIMPIMPORTER ON CACHE BOOL "WITH_ASSIMPIMPORTER" FORCE)
endif()
set(WITH_TINYGLTFIMPORTER ON CACHE BOOL "WITH_TINYGLTFIMPORTER" FORCE)
Expand Down Expand Up @@ -171,7 +170,10 @@ if(NOT USE_SYSTEM_MAGNUM)
# formats (BC7 mode 6 has > 1 MB tables, ATC/FXT1/PVRTC2 are quite rare and
# not supported by Magnum).
set(BASIS_UNIVERSAL_DIR "${DEPS_DIR}/basis-universal")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBASISD_SUPPORT_BC7_MODE6_OPAQUE_ONLY=0 -DBASISD_SUPPORT_ATC=0 -DBASISD_SUPPORT_FXT1=0 -DBASISD_SUPPORT_PVRTC2=0")
set(
CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -DBASISD_SUPPORT_BC7_MODE6_OPAQUE_ONLY=0 -DBASISD_SUPPORT_ATC=0 -DBASISD_SUPPORT_FXT1=0 -DBASISD_SUPPORT_PVRTC2=0"
)
set(WITH_BASISIMPORTER ON CACHE BOOL "" FORCE)

if(BUILD_WITH_BULLET)
Expand All @@ -190,18 +192,32 @@ if(NOT USE_SYSTEM_MAGNUM)
endif()
endif()
if(APPLE)
set(WITH_WINDOWLESSCGLAPPLICATION ON CACHE BOOL "WITH_WINDOWLESSCGLAPPLICATION" FORCE)
set(WITH_WINDOWLESSCGLAPPLICATION ON CACHE BOOL "WITH_WINDOWLESSCGLAPPLICATION"
FORCE
)
elseif(WIN32)
set(WITH_WINDOWLESSWGLAPPLICATION ON CACHE BOOL "WITH_WINDOWLESSWGLAPPLICATION" FORCE)
set(WITH_WINDOWLESSWGLAPPLICATION ON CACHE BOOL "WITH_WINDOWLESSWGLAPPLICATION"
FORCE
)
elseif(CORRADE_TARGET_EMSCRIPTEN)
set(WITH_WINDOWLESSEGLAPPLICATION ON CACHE INTERNAL "WITH_WINDOWLESSEGLAPPLICATION" FORCE)
set(WITH_WINDOWLESSEGLAPPLICATION ON CACHE INTERNAL "WITH_WINDOWLESSEGLAPPLICATION"
FORCE
)
elseif(UNIX)
if(BUILD_GUI_VIEWERS)
set(WITH_WINDOWLESSGLXAPPLICATION ON CACHE INTERNAL "WITH_WINDOWLESSGLXAPPLICATION" FORCE)
set(WITH_WINDOWLESSEGLAPPLICATION OFF CACHE INTERNAL "WITH_WINDOWLESSEGLAPPLICATION" FORCE)
set(WITH_WINDOWLESSGLXAPPLICATION ON CACHE INTERNAL
"WITH_WINDOWLESSGLXAPPLICATION" FORCE
)
set(WITH_WINDOWLESSEGLAPPLICATION OFF CACHE INTERNAL
"WITH_WINDOWLESSEGLAPPLICATION" FORCE
)
else()
set(WITH_WINDOWLESSGLXAPPLICATION OFF CACHE INTERNAL "WITH_WINDOWLESSGLXAPPLICATION" FORCE)
set(WITH_WINDOWLESSEGLAPPLICATION ON CACHE INTERNAL "WITH_WINDOWLESSEGLAPPLICATION" FORCE)
set(WITH_WINDOWLESSGLXAPPLICATION OFF CACHE INTERNAL
"WITH_WINDOWLESSGLXAPPLICATION" FORCE
)
set(WITH_WINDOWLESSEGLAPPLICATION ON CACHE INTERNAL
"WITH_WINDOWLESSEGLAPPLICATION" FORCE
)
endif()
endif()
add_subdirectory("${DEPS_DIR}/magnum")
Expand Down
4 changes: 2 additions & 2 deletions src/esp/CMakeLists.txt
Expand Up @@ -7,8 +7,8 @@
# set_directory_properties(PROPERTIES CORRADE_USE_PEDANTIC_FLAGS ON)

option(BUILD_WARNINGS_AS_ERRORS "Build with warnings as errors" OFF)
if (BUILD_WARNINGS_AS_ERRORS)
if (MSVC)
if(BUILD_WARNINGS_AS_ERRORS)
if(MSVC)
add_compile_options(/WX)
else()
# TODO(msb) remove -Wall once we enable CORRADE_USE_PEDANTIC
Expand Down
14 changes: 6 additions & 8 deletions src/esp/agent/CMakeLists.txt
@@ -1,11 +1,9 @@
add_library(agent STATIC
Agent.cpp
Agent.h
add_library(
agent STATIC
Agent.cpp Agent.h
)

target_link_libraries(agent
PUBLIC
core
gfx
sensor
target_link_libraries(
agent
PUBLIC core gfx sensor
)
107 changes: 50 additions & 57 deletions src/esp/assets/CMakeLists.txt
@@ -1,4 +1,5 @@
set(assets_SOURCES
set(
assets_SOURCES
Asset.cpp
Asset.h
attributes/AttributesBase.h
Expand Down Expand Up @@ -30,82 +31,74 @@ set(assets_SOURCES
managers/PhysicsAttributesManager.cpp
managers/StageAttributesManager.h
managers/StageAttributesManager.cpp

ResourceManager.cpp
ResourceManager.h

)

if(BUILD_PTEX_SUPPORT)
list(APPEND assets_SOURCES
PTexMeshData.cpp
PTexMeshData.h
)
list(APPEND assets_SOURCES PTexMeshData.cpp PTexMeshData.h)
endif()

find_package(Magnum
find_package(
Magnum
REQUIRED
AnyImageImporter
AnySceneImporter
GL
MeshTools
SceneGraph
Shaders
Trade
Primitives
AnyImageImporter
AnySceneImporter
GL
MeshTools
SceneGraph
Shaders
Trade
Primitives
)

find_package(MagnumPlugins
find_package(
MagnumPlugins
REQUIRED
BasisImporter
PrimitiveImporter
StanfordImporter
StbImageImporter
StbImageConverter
TinyGltfImporter
BasisImporter
PrimitiveImporter
StanfordImporter
StbImageImporter
StbImageConverter
TinyGltfImporter
)

if(BUILD_ASSIMP_SUPPORT)
find_package(MagnumPlugins
REQUIRED
AssimpImporter
)
find_package(MagnumPlugins REQUIRED AssimpImporter)
endif()

add_library(assets STATIC ${assets_SOURCES})
add_library(
assets STATIC
${assets_SOURCES}
)

target_link_libraries(assets
PUBLIC
core
physics
scene
nav
Magnum::AnyImageImporter
Magnum::AnySceneImporter
Magnum::GL
Magnum::Magnum
Magnum::MeshTools
Magnum::SceneGraph
Magnum::Shaders
Magnum::Trade
Magnum::Primitives
MagnumPlugins::BasisImporter
MagnumPlugins::PrimitiveImporter
MagnumPlugins::StanfordImporter
MagnumPlugins::StbImageImporter
MagnumPlugins::StbImageConverter
MagnumPlugins::TinyGltfImporter
PRIVATE
geo
io
target_link_libraries(
assets
PUBLIC core
physics
scene
nav
Magnum::AnyImageImporter
Magnum::AnySceneImporter
Magnum::GL
Magnum::Magnum
Magnum::MeshTools
Magnum::SceneGraph
Magnum::Shaders
Magnum::Trade
Magnum::Primitives
MagnumPlugins::BasisImporter
MagnumPlugins::PrimitiveImporter
MagnumPlugins::StanfordImporter
MagnumPlugins::StbImageImporter
MagnumPlugins::StbImageConverter
MagnumPlugins::TinyGltfImporter
PRIVATE geo io
)

if(BUILD_ASSIMP_SUPPORT)
target_link_libraries(assets
PUBLIC
MagnumPlugins::AssimpImporter
PRIVATE
Assimp::Assimp
target_link_libraries(
assets PUBLIC MagnumPlugins::AssimpImporter PRIVATE Assimp::Assimp
)
endif()

Expand Down
28 changes: 14 additions & 14 deletions src/esp/bindings/CMakeLists.txt
@@ -1,6 +1,7 @@
find_package(MagnumBindings REQUIRED Python)

pybind11_add_module(habitat_sim_bindings
pybind11_add_module(
habitat_sim_bindings
bindings.cpp
AttributesBindings.cpp
AttributesManagersBindings.cpp
Expand All @@ -13,19 +14,18 @@ pybind11_add_module(habitat_sim_bindings
ShortestPathBindings.cpp
SimBindings.cpp
)
target_link_libraries(habitat_sim_bindings
PRIVATE
MagnumBindings::Python
PUBLIC
agent
assets
scene
core
gfx
nav
sensor
physics
sim
target_link_libraries(
habitat_sim_bindings
PRIVATE MagnumBindings::Python
PUBLIC agent
assets
scene
core
gfx
nav
sensor
physics
sim
)

# target_include_directories(environment
Expand Down