Here is the CMakeFiles.txt code:
# look for wxPdfDocument
# ...include
find_path( WXPDFDOC_INCLUDE_PATH pdfdc29.h DOC "wxPdfDocument include files path" )
if( NOT WXPDFDOC_INCLUDE_PATH )
message( FATAL_ERROR "Unable to find wxPdfDocument include path" )
else( NOT WXPDFDOC_INCLUDE_PATH )
# up une folder to include <wx/....h>
set( WXPDFDOC_INCLUDE_PATH ${WXPDFDOC_INCLUDE_PATH}/.. )
message( STATUS "wxPdfDocument include path: " ${WXPDFDOC_INCLUDE_PATH} )
endif( NOT WXPDFDOC_INCLUDE_PATH )
# ...libraries
if(WIN32)
find_file( WXPDFDOC_LIB_PATH_DEBUG wxcode_msw29ud_pdfdoc.lib DOC "Path to the DEBUG wxPdfDocument library" )
find_file( WXPDFDOC_LIB_PATH_RELEASE wxcode_msw29u_pdfdoc.lib DOC "Path to the RELEASE wxPdfDocument library" )
if( NOT WXPDFDOC_LIB_PATH_DEBUG OR NOT WXPDFDOC_LIB_PATH_RELEASE )
message( FATAL_ERROR "Unable to find wxPdfDocument library files" )
else ( NOT WXPDFDOC_LIB_PATH_DEBUG OR NOT WXPDFDOC_LIB_PATH_RELEASE )
message( STATUS "wxPdfDocument debug library: " ${WXPDFDOC_LIB_PATH_DEBUG} )
message( STATUS "wxPdfDocument release library: " ${WXPDFDOC_LIB_PATH_RELEASE} )
endif ( NOT WXPDFDOC_LIB_PATH_DEBUG OR NOT WXPDFDOC_LIB_PATH_RELEASE )
else(WIN32)
find_library( WXPDFDOC_LIB_PATH libwxcode_gtk2u_pdfdoc-2.9.a )
if( NOT WXPDFDOC_LIB_PATH )
message( FATAL_ERROR "Unable to find wxPdfDocument library file" )
else( NOT WXPDFDOC_LIB_PATH )
message( STATUS "wxPdfDocument library: " ${WXPDFDOC_LIB_PATH} )
endif( NOT WXPDFDOC_LIB_PATH )
endif(WIN32)
# link and include
if(WIN32)
target_link_libraries( GeASt debug ${WXPDFDOC_LIB_PATH_DEBUG} optimized ${WXPDFDOC_LIB_PATH_RELEASE} )
else(WIN32)
target_link_libraries( GeASt ${WXPDFDOC_LIB_PATH} )
endif(WIN32)
include_directories( ${WXPDFDOC_INCLUDE_PATH} )
The code looks for the include files and the library file(s), then it uses those information to set the include path and to link the libraries.
The behaviour is different for Windows and for *nix operating systems. Under Windows there are two different libraries, one for the debug and one for the release build. Under Linux and Mac there is a single library file.
An important note for wxWidgets users: always link the wxWidgets libraries AFTER all other libraries, otherwise you might get linker errors (undefined symbols). This happened to me under Linux.
This means that the
target_link_libraries(GeASt ${wxWidgets_LIBRARIES})
line must be the last TARGET_LINK_LIBRARIES line.
No comments:
Post a Comment