Stephen,
The catch is that windows searches for the DLL at runtime in specific
locations: http://msdn.microsoft.com/en-us/library/7d83bc18%28VS.80%29.aspx
This is why, when you do an install(TARGETS some-shared-lib you need
both the RUNTIME DESTINATION (for the dll) and the ARCHIVE DESTINATION
(for the import library). Generally, to avoid headaches, just put the
DLL in the same directory as the .exe. I tend to set things up like
this, if I had an executable and a shared library (which is needed by
the exe, but also might be compiled against so we should install the
import lib and headers if requested):
install(TARGETS MyEXETarget
RUNTIME DESTINATION bin COMPONENT runtime)
install(TARGETS MySharedLibTarget
EXPORT mysoftware-sdk
RUNTIME DESTINATION bin COMPONENT runtime
ARCHIVE DESTINATION lib COMPONENT devel
PUBLIC_HEADER DESTINATION include COMPONENT devel)
Hope this helps!
Ryan
On 06/11/2010 10:59 AM, Torri, Stephen CIV NSWCDD, W15 wrote:
I am running into a problem with a project that installs a shared library. The
files for the project are all places in the correct directories. What I am
finding is that when I compile a project with uses the shared library it
compiles and links correctly but the library is not found when the executable
is started. Here is my CPACK configuration for the project.
Q 1: Am I missing some command that is suppose to tell windows that in my
installation directory is another shared library it should use?
Q 2: How can I skip the page in the NSIS wizard to not ask the user if they
want to add an entry to the start menu?
Q 3: As a library do I need to have a page in the NSIS wizard asking the user
if they want to add the installation directory to the system PATH? I thought
that only applies to executables. This project does not install any EXE files.
Stephen
------------------------------------------
#-----------------------------------------------------
# CPACK
#-----------------------------------------------------
#-----------------------------
# CPACK DESCRIPTION INFORMATION
#-----------------------------
SET(CPACK_PACKAGE_NAME "Project")
SET(CPACK_PACKAGE_VENDOR "Work")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Does something")
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
SET(CPACK_PACKAGE_VERSION "0.2.0")
SET(CPACK_PACKAGE_VERSION_MAJOR "0")
SET(CPACK_PACKAGE_VERSION_MINOR "2")
SET(CPACK_PACKAGE_VERSION_PATCH "0")
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "PROJECT ${CPACK_PACKAGE_VERSION}")
#-----------------------------
# INSTALLATION INFORMATION
#-----------------------------
SET(CPACK_COMPONENTS_ALL libraries headers)
SET(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries")
SET(CPACK_COMPONENT_LIBRARIES_DESCRIPTION "Dynamic library used to build programs
with Project interface")
SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ Headers")
SET(CPACK_COMPONENT_HEADERS_DESCRIPTION "C++ header files for use with Project
interface")
SET(CPACK_COMPONENT_HEADERS_DEPENDS libraries)
SET(CPACK_COMPONENT_LIBRARIES_GROUP "Development")
SET(CPACK_COMPONENT_HEADERS_GROUP "Development")
SET(CPACK_COMPONENT_GROUP_DEVELOPMENT_DESCRIPTION "All of the tools necessary to
develop against the Project interface")
#-----------------------------
# INSTALLATION TYPES
#-----------------------------
SET(CPACK_ALL_INSTALL_TYPES Full Developer)
SET(CPACK_COMPONENT_LIBRARIES_INSTALL_TYPES Full Developer)
SET(CPACK_COMPONENT_HEADERS_INSTALL_TYPES Full Developer)
IF (WIN32)
SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\InstallIcon.bmp")
SET(CPACK_NSIS_MODIFY_PATH ON)
SET(CPACK_GENERATOR "NSIS")
ELSE (UNIX)
SET(CPACK_GENERATOR "STGZ;TGZ;RPM")
ENDIF(WIN32)
# Always include this last.
INCLUDE(CPack)
--
Ryan Pavlik
HCI Graduate Student
Virtual Reality Applications Center
Iowa State University
rpav...@iastate.edu
http://academic.cleardefinition.com
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake