Code Monkey home page Code Monkey logo

Comments (4)

KerstinKeller avatar KerstinKeller commented on September 25, 2024 1

Yeah, not 100% sure why we have them in the first place. For debug we do, because we do often package debug and release artefacts in the same directories....

from ecal.

KerstinKeller avatar KerstinKeller commented on September 25, 2024

Indeed it behaves as described. We have two options:
If we're in RelWithDebInfo build, we search only / first dlls/so with the reldbg extension.
So should we:

  • only search for plugins with the "correct" extension?
  • Search for mulitple plugins, and if so, in which order
#if defined(_DEBUG) && !defined(NDEBUG)
    // RelWithDebInfo configuration
#else
    // Other configuration
#endif

Relevant lines are here:

#ifdef _WIN32
#ifndef NDEBUG
module_name += "d";
#endif // !NDEBUG
// set extension
module_name += ".dll";
#endif // _WIN32
#ifdef __linux__
module_name = "lib" + module_name + ".so";
#endif // __linux__
#ifdef __APPLE__
module_name = "lib" + module_name + ".dylib";
#endif // __APPLE__

from ecal.

DownerCase avatar DownerCase commented on September 25, 2024

What about not using custom postfixes? I.e: Delete this block of code

ecal/CMakeLists.txt

Lines 298 to 302 in f51d0c0

if(WIN32)
set(CMAKE_DEBUG_POSTFIX d)
set(CMAKE_MINSIZEREL_POSTFIX minsize)
set(CMAKE_RELWITHDEBINFO_POSTFIX reldbg)
endif()

(I guess you could leave the debug postfix, as its a thing some projects do...)

Otherwise you also have this problem with MinSizeRel too.

Release, MinSizeRel and RelWithDebInfo are all release builds after all, so makes some sense to not distinguish between them.

from ecal.

FlorianReimold avatar FlorianReimold commented on September 25, 2024

Exactly that's why we have those postfixes. They especially matter for Windows, where we have to provide special builds in Debug and Release mode. And if those shall go in the same directory, they must have different names, obviously. We maybe(?) can ditch the minsize and reldbg versions though, as I think the binary interface only differs between Debug and Non-Debug.

from ecal.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.