-
Notifications
You must be signed in to change notification settings - Fork 180
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
Make libdshowcapture.dll installable #51
base: master
Are you sure you want to change the base?
Conversation
There is no documentation to update about building this library, so I am not sure what to do about "all appropriate documentation" In the contribution checklist |
@PatTheMav @gxalpha sorry for the ping, just wanted to bring your attention about this. This is just a minimal change to the CMake files ot allow outputting the DLL easier |
@@ -119,3 +119,6 @@ target_compile_definitions(libdshowcapture PRIVATE _UP_WINDOWS=1) | |||
|
|||
target_link_libraries(libdshowcapture PRIVATE setupapi strmiids ksuser winmm | |||
wmcodecdspuuid) | |||
|
|||
set_target_properties(libdshowcapture PROPERTIES PUBLIC_HEADER "${libdshowcapture_HEADERS}") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is fine, but given that it's a single property (that has the potential to hold existing values), I'd personally prefer to use:
set_property(TARGET libdshowcapture APPEND PROPERTY PUBLIC_HEADER ${libdshowcapture_HEADERS})
I don't think this is the correct approach: The headers are contained in subdirectories, but This will only work if the library (and its consumers) include the headers without any expectation of subdirectories, i.e. If the headers in subdirectories are not actually public headers, they in turn should not be added as such. |
I'll take a closer look at how these headers are actually installed here, I have been using the output of a cmake install from that script in a project without issues so I probably have missed the flattening of the directories |
Description
This changes add an
install
target to the main CMakeLists.txt. It will install the .lib, .dll and necessary header files to the location set byCMAKE_INSTALL_PREFIX
(standard practice for CMake projects)Motivation and Context
This allows building this library in a form that is very easy to consume for 3rd party projects.
How Has This Been Tested?
cmake
orcmake-gui
CMAKE_INSTALL_PREFIX
to a non default directory (if not, it put it inC:\Program Files\<project name>
CMAKE_DEBUG_POSTFIX
to allow installing both Release and Debug symbolsINSTALL
sub projectTypes of changes
Checklist: