From a09630bcca0f354942611f32c2cc5ad765d034be Mon Sep 17 00:00:00 2001 From: James Turner Date: Wed, 2 Nov 2016 13:59:43 +0000 Subject: [PATCH] Cmake export fixes. Should hopefully fix importing in FlightGear --- CMakeLists.txt | 16 +++++---------- simgear/CMakeLists.txt | 45 ++++++++++++++++++++++++++---------------- 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b9b3c450..43126d48 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,17 +24,17 @@ set(CMAKE_OSX_RPATH 1) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED YES) -project(SimGear) +# read 'version' file into a variable (stripping any newlines or spaces) +file(READ version versionFile) +string(STRIP ${versionFile} SIMGEAR_VERSION) + +project(SimGear VERSION ${SIMGEAR_VERSION} LANGUAGES C CXX) # using 10.7 because boost requires libc++ and 10.6 doesn't include it # Cmake documentation says we must set this before calling project(), but # it only seems to be picked up setting it /after/ the call to project() set(CMAKE_OSX_DEPLOYMENT_TARGET "10.7") -# read 'version' file into a variable (stripping any newlines or spaces) -file(READ version versionFile) -string(STRIP ${versionFile} SIMGEAR_VERSION) - # add a dependency on the versino file set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS version) @@ -73,8 +73,6 @@ set(CPACK_SOURCE_PACKAGE_FILE_NAME "simgear-${SIMGEAR_VERSION}" CACHE INTERNAL " set(CPACK_SOURCE_IGNORE_FILES "^${PROJECT_SOURCE_DIR}/.git;\\\\.gitignore;Makefile.am;~$;${CPACK_SOURCE_IGNORE_FILES}") -message(STATUS "ignoring: ${CPACK_SOURCE_IGNORE_FILES}") - include (CPack) # We have some custom .cmake scripts not in the official distribution. @@ -413,8 +411,6 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${MSVC_LD_FLAGS}") # use BEFORE to ensure local directories are used first, # ahead of system-installed libs -include_directories(BEFORE ${PROJECT_SOURCE_DIR}) -include_directories(BEFORE ${PROJECT_SOURCE_DIR}/simgear/canvas/ShivaVG/include) include_directories(BEFORE ${PROJECT_BINARY_DIR}/simgear) include_directories( @@ -460,8 +456,6 @@ endif() install (FILES ${PROJECT_BINARY_DIR}/simgear/simgear_config.h DESTINATION include/simgear/) -include_directories(3rdparty/utf8/source) - if(ENABLE_DNS) if(SYSTEM_UDNS) message(STATUS "Requested to use system udns library, forcing SIMGEAR_SHARED to true") diff --git a/simgear/CMakeLists.txt b/simgear/CMakeLists.txt index 516ea6cd..e5c1b719 100644 --- a/simgear/CMakeLists.txt +++ b/simgear/CMakeLists.txt @@ -54,24 +54,14 @@ if(SIMGEAR_SHARED) set_property(TARGET SimGearCore PROPERTY LINKER_LANGUAGE CXX) set_property(TARGET SimGearCore PROPERTY VERSION ${SIMGEAR_VERSION}) set_property(TARGET SimGearCore PROPERTY SOVERSION ${SIMGEAR_SOVERSION}) - install(TARGETS SimGearCore - EXPORT SimGearTargets - LIBRARY DESTINATION - ${CMAKE_INSTALL_LIBDIR}) + if(NOT SIMGEAR_HEADLESS) add_library(SimGearScene SHARED ${sceneSources}) set_property(TARGET SimGearScene PROPERTY LINKER_LANGUAGE CXX) set_property(TARGET SimGearScene PROPERTY VERSION ${SIMGEAR_VERSION}) set_property(TARGET SimGearScene PROPERTY SOVERSION ${SIMGEAR_SOVERSION}) - - # EXPORT SimGearSceneConfig - install(TARGETS SimGearScene - EXPORT SimGearTargets - LIBRARY - DESTINATION ${CMAKE_INSTALL_LIBDIR} ) endif() - else() message(STATUS "Library building mode: STATIC LIBRARIES") @@ -94,9 +84,6 @@ else() endforeach() add_library(SimGearCore STATIC ${coreSources} ${localExpatSources}) - install(TARGETS SimGearCore - EXPORT SimGearTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) if(NOT SIMGEAR_HEADLESS) get_property(FG_GROUPS_SCENE_SOURCES_C GLOBAL PROPERTY FG_GROUPS_SCENE_SOURCES_C) @@ -118,12 +105,31 @@ else() endforeach() add_library(SimGearScene STATIC ${sceneSources}) - install(TARGETS SimGearScene - EXPORT SimGearTargets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif(NOT SIMGEAR_HEADLESS) endif(SIMGEAR_SHARED) +target_include_directories(SimGearCore PUBLIC + $ + $) + + install(TARGETS SimGearCore + EXPORT SimGearTargets + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + +if (NOT SIMGEAR_HEADLESS) + install(TARGETS SimGearScene + EXPORT SimGearTargets + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + + target_include_directories(SimGearScene PUBLIC + $ + $) + +endif() + + target_link_libraries(SimGearCore ${ZLIB_LIBRARY} ${RT_LIBRARY} @@ -143,6 +149,8 @@ if(ENABLE_DNS AND SYSTEM_UDNS) endif() if(NOT SIMGEAR_HEADLESS) + target_include_directories(SimGearScene PRIVATE ${PROJECT_SOURCE_DIR}/simgear/canvas/ShivaVG/include) + target_link_libraries(SimGearScene SimGearCore ${ZLIB_LIBRARY} @@ -150,6 +158,9 @@ if(NOT SIMGEAR_HEADLESS) ${OPENAL_LIBRARY} ${OPENGL_LIBRARY} ${JPEG_LIBRARY}) + + # only actually needed by canvas/KeyboardEvent.cxx + target_include_directories(SimGearScene PRIVATE ${PROJECT_SOURCE_DIR}/3rdparty/utf8/source) endif() if(ENABLE_RTI)