#------------------------------------------------------------------- # This file is part of the CMake build system for Scol # # The contents of this file are placed in the public domain. Feel # free to make use of it in any way you like. #------------------------------------------------------------------- ############################################################ # include/Scol core library ############################################################ PROJECT(embeddedNavigator) # define header and source files for the library set (EMBEDDED_NAVIGATOR_HEADER_FILES include/embeddedWebNavigator.h include/embeddedWebNavigatorClient.h include/embeddedWebNavigatorConsoleInformations.h include/embeddedWebNavigatorCriticalSection.h include/embeddedWebNavigatorDisplayHandler.h include/embeddedWebNavigatorErrorInformations.h include/embeddedWebNavigatorDragHandler.h include/embeddedWebNavigatorFindHandler.h include/embeddedWebNavigatorFindInformations.h include/embeddedWebNavigatorFocusHandler.h include/embeddedWebNavigatorHandler.h include/embeddedWebNavigatorJSDialogHandler.h include/embeddedWebNavigatorJSFunction.h include/embeddedWebNavigatorKeyboardHandler.h include/embeddedWebNavigatorLifeSpanHandler.h include/embeddedWebNavigatorLoadHandler.h include/embeddedWebNavigatorManager.h include/embeddedWebNavigatorMenuHandler.h include/embeddedWebNavigatorMessageInformations.h include/embeddedWebNavigatorPopupInformations.h include/embeddedWebNavigatorPrerequisites.h include/embeddedWebNavigatorPrintHandler.h include/embeddedWebNavigatorRenderHandler.h include/embeddedWebNavigatorRequestHandler.h include/embeddedWebNavigatorScolExternalCallHandler.h include/embeddedWebNavigatorThread.h include/embeddedWebNavigatorV8ContextHandler.h ) set (EMBEDDED_NAVIGATOR_SOURCE_FILES src/embeddedWebNavigator.cpp src/embeddedWebNavigatorClient.cpp src/embeddedWebNavigatorConsoleInformations.cpp src/embeddedWebNavigatorCriticalSection.cpp src/embeddedWebNavigatorDisplayHandler.cpp src/embeddedWebNavigatorDragHandler.cpp src/embeddedWebNavigatorErrorInformations.cpp src/embeddedWebNavigatorFindHandler.cpp src/embeddedWebNavigatorFindInformations.cpp src/embeddedWebNavigatorFocusHandler.cpp src/embeddedWebNavigatorHandler.cpp src/embeddedWebNavigatorJSDialogHandler.cpp src/embeddedWebNavigatorJSFunction.cpp src/embeddedWebNavigatorKeyboardHandler.cpp src/embeddedWebNavigatorLifeSpanHandler.cpp src/embeddedWebNavigatorLoadHandler.cpp src/embeddedWebNavigatorManager.cpp src/embeddedWebNavigatorMenuHandler.cpp src/embeddedWebNavigatorMessageInformations.cpp src/embeddedWebNavigatorPopupInformations.cpp src/embeddedWebNavigatorPrintHandler.cpp src/embeddedWebNavigatorRenderHandler.cpp src/embeddedWebNavigatorRequestHandler.cpp src/embeddedWebNavigatorScolExternalCallHandler.cpp src/embeddedWebNavigatorThread.cpp src/embeddedWebNavigatorV8ContextHandler.cpp ) set (SCOL_EMBEDDED_NAVIGATOR_HEADER_FILES include/scolEmbeddedWebNavigator.h include/scolEmbeddedWebNavigatorDisplay.h include/scolEmbeddedWebNavigatorFind.h include/scolEmbeddedWebNavigatorLifeSpan.h include/scolEmbeddedWebNavigatorLoad.h include/scolEmbeddedWebNavigatorV8ContextHandler.h ) set (SCOL_EMBEDDED_NAVIGATOR_SOURCE_FILES src/scolEmbeddedWebNavigator.cpp src/scolEmbeddedWebNavigatorDisplay.cpp src/scolEmbeddedWebNavigatorFind.cpp src/scolEmbeddedWebNavigatorLifeSpan.cpp src/scolEmbeddedWebNavigatorLoad.cpp src/scolEmbeddedWebNavigatorV8ContextHandler.cpp ) # This is how visual studio directories (or filters) are generated. source_group(Header\ Files\\navigator FILES ${EMBEDDED_NAVIGATOR_HEADER_FILES}) source_group(Source\ Files\\navigator FILES ${EMBEDDED_NAVIGATOR_SOURCE_FILES}) source_group(Header\ Files\\scol\ bindings FILES ${SCOL_EMBEDDED_NAVIGATOR_HEADER_FILES}) source_group(Source\ Files\\scol\ bindings FILES ${SCOL_EMBEDDED_NAVIGATOR_SOURCE_FILES}) # CEF need to be compiled as MT, so does our lib foreach(flag_var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) if(${flag_var} MATCHES "/MD") string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") endif(${flag_var} MATCHES "/MD") endforeach(flag_var) # Add directories includes include_directories(include ${CEF_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}) # Add definition for P4 optimizations, warnings removal. add_definitions(-DOPTI_P4 -D_CRT_SECURE_NO_WARNINGS) set(LIBRARIES ${CEF_LIBRARIES} ) # setup Scol embeddedNavigator target add_library(embeddedNavigator ${Scol_LIB_TYPE} ${EMBEDDED_NAVIGATOR_HEADER_FILES} ${EMBEDDED_NAVIGATOR_SOURCE_FILES} ${SCOL_EMBEDDED_NAVIGATOR_HEADER_FILES} ${SCOL_EMBEDDED_NAVIGATOR_SOURCE_FILES} ) add_dependencies(embeddedNavigator kernel) # set the dll version. set_target_properties(embeddedNavigator PROPERTIES VERSION ${Scol_VERSION} SOVERSION ${Scol_VERSION_MAJOR}) target_link_libraries(embeddedNavigator ${LIBRARIES}) # install Scol embeddedNavigator scol_config_plugin(embeddedNavigator) install(FILES ${EMBEDDED_NAVIGATOR_HEADER_FILES} ${SCOL_EMBEDDED_NAVIGATOR_HEADER_FILES} DESTINATION include/SCOL/plugins/embeddedNavigator) ############################################################### # Install Cef dlls ############################################################### install(FILES ${CEF_BINARIES_DEBUG} DESTINATION "bin/${Scol_DEBUG_PATH}" CONFIGURATIONS Debug) install(FILES ${CEF_BINARIES_RELEASE} DESTINATION "bin/${Scol_RELEASE_PATH}" CONFIGURATIONS Release None "") install(FILES ${CEF_BINARIES_RELEASE} DESTINATION "bin/${Scol_RELWDBG_PATH}" CONFIGURATIONS RelWithDebInfo) install(FILES ${CEF_BINARIES_RELEASE} DESTINATION "bin/${Scol_MINSIZE_PATH}" CONFIGURATIONS MinSizeRel) ############################################################### # Install Cef locales ############################################################### install(DIRECTORY ${CEF_LOCALES_DIRECTORY_PATH} DESTINATION "bin/${Scol_DEBUG_PATH}" CONFIGURATIONS Debug PATTERN ".svn" EXCLUDE) install(DIRECTORY ${CEF_LOCALES_DIRECTORY_PATH} DESTINATION "bin/${Scol_RELEASE_PATH}" CONFIGURATIONS Release None "" PATTERN ".svn" EXCLUDE) install(DIRECTORY ${CEF_LOCALES_DIRECTORY_PATH} DESTINATION "bin/${Scol_RELWDBG_PATH}" CONFIGURATIONS RelWithDebInfo PATTERN ".svn" EXCLUDE) install(DIRECTORY ${CEF_LOCALES_DIRECTORY_PATH} DESTINATION "bin/${Scol_MINSIZE_PATH}" CONFIGURATIONS MinSizeRel PATTERN ".svn" EXCLUDE) ############################################################### # Install Chrome.pak ############################################################### install(FILES ${CEF_CHROME_PACK_PATH} DESTINATION "bin/${Scol_DEBUG_PATH}" CONFIGURATIONS Debug) install(FILES ${CEF_CHROME_PACK_PATH} DESTINATION "bin/${Scol_RELEASE_PATH}" CONFIGURATIONS Release None "") install(FILES ${CEF_CHROME_PACK_PATH} DESTINATION "bin/${Scol_RELWDBG_PATH}" CONFIGURATIONS RelWithDebInfo) install(FILES ${CEF_CHROME_PACK_PATH} DESTINATION "bin/${Scol_MINSIZE_PATH}" CONFIGURATIONS MinSizeRel)