There is no reason to unconditionally build both variants. It increases
compile times, and consumers already know whether or not they want a
static or shared artifact. Instead, use a standard CMake construct to
build either one of them.
To allow users to override static vs shared for EIPScanner only, use a
new variable called EIPScanner_SHARED_LIBS: If set, our add_library()
will create a shared library, if not, a static library is created.
Building a static library by default also matches the default behaviour
of add_library().
This still allows users to specify BUILD_SHARED_LIBS on the command line
as an ultimate override, but at the same time avoids having
BUILD_SHARED_LIBS be the only option for building static vs shared.
There is no reason to unconditionally build both variants. It increases compile times, and consumers already know whether or not they want a static or shared artifact. Instead, use a standard CMake construct to build either one of them.
To allow users to override static vs shared for EIPScanner only, use a new variable called EIPScanner_SHARED_LIBS: If set, our add_library() will create a shared library, if not, a static library is created. Building a static library by default also matches the default behaviour of add_library().
This still allows users to specify BUILD_SHARED_LIBS on the command line as an ultimate override, but at the same time avoids having BUILD_SHARED_LIBS be the only option for building static vs shared.