- #Cmake install files code
- #Cmake install files windows
By default it points to C:/Program Files (x86)/$ directory. The CMAKE_INSTALL_PREFIX cache variable tells CMake where to install your project. I’m not sure why the install commands from the external project can’t “transfer” over to the main project. I think this would probably work but it seems a bit hokey.
Do I need to add additional install commands in the main project on each target of the external project?. The binary from the external project ends up in the directory build\extern-prefix\src\extern-build\install and still does not get included in the NSIS installer or the CPack directory in the main project. #Cmake install files code
With a code block like this: ExternalProject_Add( Just out of curiosity I tried forwarding this on to the external project thinking that maybe it would magically cause the external project’s install statements to be treated the same as install statements in the main project, but that didn’t seem to happen. I notice that CMAKE_INSTALL_PREFIX is “C:/Program Files (x86)/Tutorial” in the main project, which doesn’t make much sense to me.
When you did -DCMAKE_INSTALL_PREFIX:PATH=install, can you give me an example of where this install directory is located?. Let me know if there’s something I missed here. I am hoping there’s a builtin command I missed that would work seamlessly on all platforms (Windows, Mac, and Linux). If this isn’t possible, what is the least intrusive way that I can use install commands to accomplish this?. Is there a parameter I could provide to ExternalProject_Add that would cause my external project’s files to be automatically included in the install process?. This is not what I expected, I suppose that I could do something like command cmake to go up a few directories and manually navigate to the right directory and copy the files there, but I’m hoping there’s a better way, because otherwise my External Project will have to be specially configured to work with my main build script. (3) This bug report looks promising but if I have my External Project print out the value of CMAKE_INSTALL_PREFIX it gives me build/extern-prefix. (2) This mailing list entry is similar but also seems to be Linux only. #Cmake install files windows
(1) There is a Linux specific solution, using an INSTALL_COMMAND that involves autotools or make install may work but I need to support Windows which won’t have these tools in our case. ExternalProject_Add alone can’t handle the install process automatically and I need to use something in addition to it. The main project does run the external project’s install step, but it can’t find the directory containing the built binary file and I need to specify that somewhere. ExternalProject_Add is not set up to cause the main project to run the External Project’s install step. Here’s my theories as to what’s happening: The executable file does not appear to be copied to anywhere the main project would know about, either. Unfortunately the executable file from the External Project is not getting packaged in by CPack. The ExternalProject_Add command in my main project’s script looks like this: # main project's ExternalProject_Add command # Literally "SomeDestination", I don't know what directory to put here. In a sample project I have created an External Project that also uses CMake as its install system, it has an install command that looks like this: # External project's install command The default install step builds the install target of the external project The external project’s install rules are not part of the main project’s install rules, so if anything from the external project should be installed as part of the main build, these need to be specified in the main build as additional install() commands. The documentation for ExternalProject mentions this: I am looking to have CMake clone and build a git repository as an ExternalProject, then package in the resulting binary files with the main project.