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

Set internal linkage for all apps functions and variables #656

Merged
merged 1 commit into from
Mar 6, 2021

Conversation

LWisteria
Copy link
Contributor

I'm trying to integrate my module into openMVS apps.

I found that the global functions and variables conflict with my module, e.g., Initialize/Finalize and OPT::nMaxThreads.

The name of my (external project) is really needed to be global functions and variables.

But openMVS's is not. It can / must be local.

To solve such a problem, could you set linkages of them internal as much as possible?

Thanks.

@cdcseacave
Copy link
Owner

I do not understand the issue, can u pls elaborate? How is that you get a conflict while the 6 existing apps in OpenMVS do not have any conflict between eachother? And if you want to use OpenMVS as a library, you do not even have to compile its apps.

@LWisteria
Copy link
Contributor Author

Sorry, I couldn't explain in detail because it's confidential.

Firstly, I don't use apps as external libs.

My project customizes libMVS, some function is replaced with my functions and libMyModule.so is linked to libMVS.
And I need run openMVS's apps with the customized libMVS.

The libMyModule.so contains a function whose name conflicts with MVS's apps.

@cdcseacave
Copy link
Owner

I still think there is something strange happening due to some design choices you made with the libs, but I do not see how this PR could hurt so I'll approve it

@cdcseacave cdcseacave merged commit 979d6db into cdcseacave:develop Mar 6, 2021
@LWisteria
Copy link
Contributor Author

something strange

IMO I agree with you, but I can't control the design...

Leaving it aside, making linkage local as much as possible is good C++ manners ( similar to shorten the variable's lifetime).

Thank you for approving!

@LWisteria LWisteria deleted the internal_linkage branch March 6, 2021 15:01
cdcseacave added a commit that referenced this pull request Dec 11, 2021
* dense: add image mask support

* dense: fix bug in mask application

* build: update find packages

* build: fix usage as third-party library

* interface: export and compare camera poses with an OpenMVG refined version

* interface: export MVS scene to NVM format

* common: fix camera scaling

* dense: small code refactor

* mvs: view DMAPs with different resolution

* interface: replace define with constexp

* interface: small change

* common: fix PFM exporter/importer

* common: disable CPUID on ARM platforms

* dense: add Region-Of-Interest (ROI) support

* common: improve octree speed

* build: update AppVeyor

* mesh: split mesh in sub-meshed by max area

* dense: split scene in sub-scenes

* cmake: build libCommon/IO/Math as shared if BUILD_SHARED_LIBS=ON (#650)

* mesh: fix bug in RemoveFaces()

* dense: filter more redundant views from sub-scenes

* common: add ZSTD serialization support

* apps: set internal linkage for functions and variables (#656)

* common: small refactor

* mesh: raster triangles using barycentric coordinates

* remove cotire

* dense: merge small sub-scenes

* interface: import COLMAP depth-maps

* interface: add MVS preset to the python script

* interface: fix COLMAP on linux

* common: make binary projects portable

* viewer: display views seeing selected point or points seen by the current view

* dense: improve depth-map initialization

* dense: merge depth-maps (no fusion)

* interface: add similarity transform functionality

* common: fix file permissions on linux

* mesh: add GLTF writing support

* mesh: add target-face-num parameter to ReconstructMesh (#671)

* mesh: improve GLTF support

* dense: add geometric-consistency

* dense: fix for invalid images

(cherry picked from commit b29648f835e5ee0b36b4240a160a20124001f34d)

* dense: close file in reading invalid depth-map (#685)

* dense: export point-cloud with min number of views per point

(cherry picked from commit 9b6b2fd7ec89a5b7ea3acdef83664daccbfc8c03)

* dense: detect computed depth-maps

(cherry picked from commit 52f9162874e4c3da66bb618dcea9dddc1bdf644a)

* refine: initialize image neighbors from input mesh

(cherry picked from commit 2a069fa0856582da2b766ba85091d3e46fa783de)

* dense: select better angle neighbors

(cherry picked from commit 05a49551ad13873c664bf394d4584cf5c44f198c)

* dense: patch-match implemented in CUDA (faster & better)

* common: fix latest boost

* dense: expose --cuda-device option (#707)

* build: add Dockerfile for CUDA #710

* dense: fix bug in selecting views

(cherry picked from commit d068c02295234199f49b26afc85ac643886f2311)

* build: fix CUDA for older cards (#712)

* dense: fix small clusters (#702)

* interface: fix COLMAP log export

* interface: add Metashape and predefined neighbors list support

* interface: fix compile linux

* dense: add support for scenes with empty point-cloud but known (coarse) mesh

* dense: filter low score estimates

* interface: add Metashape ROI support

* viewer: display ROI

* dense: increase NCC threshold for CUDA

* interface: remap Metashape indices

* dense: fix depth-map crash in CUDA

* interface: update MVG-MVS pipeline

Co-authored-by: YOSHIFUJI Naoki <lwisteria.ao@gmail.com>
Co-authored-by: Piero Toffanin <pt@masseranolabs.com>
Co-authored-by: Tommy Bojanin <Bojanint@gmail.com>
cdcseacave added a commit that referenced this pull request Dec 11, 2021
* dense: add image mask support

* dense: fix bug in mask application

* build: update find packages

* build: fix usage as third-party library

* interface: export and compare camera poses with an OpenMVG refined version

* interface: export MVS scene to NVM format

* common: fix camera scaling

* dense: small code refactor

* mvs: view DMAPs with different resolution

* interface: replace define with constexp

* interface: small change

* common: fix PFM exporter/importer

* common: disable CPUID on ARM platforms

* dense: add Region-Of-Interest (ROI) support

* common: improve octree speed

* build: update AppVeyor

* mesh: split mesh in sub-meshed by max area

* dense: split scene in sub-scenes

* cmake: build libCommon/IO/Math as shared if BUILD_SHARED_LIBS=ON (#650)

* mesh: fix bug in RemoveFaces()

* dense: filter more redundant views from sub-scenes

* common: add ZSTD serialization support

* apps: set internal linkage for functions and variables (#656)

* common: small refactor

* mesh: raster triangles using barycentric coordinates

* remove cotire

* dense: merge small sub-scenes

* interface: import COLMAP depth-maps

* interface: add MVS preset to the python script

* interface: fix COLMAP on linux

* common: make binary projects portable

* viewer: display views seeing selected point or points seen by the current view

* dense: improve depth-map initialization

* dense: merge depth-maps (no fusion)

* interface: add similarity transform functionality

* common: fix file permissions on linux

* mesh: add GLTF writing support

* mesh: add target-face-num parameter to ReconstructMesh (#671)

* mesh: improve GLTF support

* dense: add geometric-consistency

* dense: fix for invalid images

(cherry picked from commit b29648f835e5ee0b36b4240a160a20124001f34d)

* dense: close file in reading invalid depth-map (#685)

* dense: export point-cloud with min number of views per point

(cherry picked from commit 9b6b2fd7ec89a5b7ea3acdef83664daccbfc8c03)

* dense: detect computed depth-maps

(cherry picked from commit 52f9162874e4c3da66bb618dcea9dddc1bdf644a)

* refine: initialize image neighbors from input mesh

(cherry picked from commit 2a069fa0856582da2b766ba85091d3e46fa783de)

* dense: select better angle neighbors

(cherry picked from commit 05a49551ad13873c664bf394d4584cf5c44f198c)

* dense: patch-match implemented in CUDA (faster & better)

* common: fix latest boost

* dense: expose --cuda-device option (#707)

* build: add Dockerfile for CUDA #710

* dense: fix bug in selecting views

(cherry picked from commit d068c02295234199f49b26afc85ac643886f2311)

* build: fix CUDA for older cards (#712)

* dense: fix small clusters (#702)

* interface: fix COLMAP log export

* interface: add Metashape and predefined neighbors list support

* interface: fix compile linux

* dense: add support for scenes with empty point-cloud but known (coarse) mesh

* dense: filter low score estimates

* interface: add Metashape ROI support

* viewer: display ROI

* dense: increase NCC threshold for CUDA

* interface: remap Metashape indices

* dense: fix depth-map crash in CUDA

* interface: update MVG-MVS pipeline

* increase version to 2.0.0

Co-authored-by: YOSHIFUJI Naoki <lwisteria.ao@gmail.com>
Co-authored-by: Piero Toffanin <pt@masseranolabs.com>
Co-authored-by: Tommy Bojanin <Bojanint@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants