| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- cmake_minimum_required (VERSION 2.6)
- PROJECT(BundleTest)
- SET(MACOSX_BUNDLE_INFO_STRING "bundle_info_string")
- SET(CMAKE_MacOSX_Content_COMPILE_OBJECT "\"${CMAKE_COMMAND}\" -E copy_if_different <SOURCE> <OBJECT>")
- ADD_CUSTOM_COMMAND(
- OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/randomResourceFile.plist"
- COMMAND /bin/cp
- ARGS "${CMAKE_CURRENT_SOURCE_DIR}/randomResourceFile.plist.in"
- "${CMAKE_CURRENT_BINARY_DIR}/randomResourceFile.plist")
- SET_SOURCE_FILES_PROPERTIES(
- "${CMAKE_CURRENT_BINARY_DIR}/randomResourceFile.plist"
- PROPERTIES
- MACOSX_PACKAGE_LOCATION Resources
- )
- SET_SOURCE_FILES_PROPERTIES(
- SomeRandomFile.txt
- "${BundleTest_SOURCE_DIR}/../../ChangeLog.txt"
- PROPERTIES
- MACOSX_PACKAGE_LOCATION MacOS
- )
- SET(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}/foobar")
- # Test building a bundle linking to a shared library where the
- # shared library links to Carbon, but the executable does not
- # explicitly link to Carbon, but the executable does *depend*
- # on Carbon. There should be a link failure for the executable
- # if CMake's dependency chaining for libraries with "-framework
- # blah" style dependencies gets broken...
- #
- ADD_LIBRARY(BundleTestLib SHARED BundleLib.cxx)
- TARGET_LINK_LIBRARIES(BundleTestLib "-framework Carbon")
- ADD_EXECUTABLE(BundleTest
- MACOSX_BUNDLE
- BundleTest.cxx
- SomeRandomFile.txt
- "${BundleTest_SOURCE_DIR}/../../ChangeLog.txt"
- "${CMAKE_CURRENT_BINARY_DIR}/randomResourceFile.plist"
- )
- TARGET_LINK_LIBRARIES(BundleTest BundleTestLib)
- #
- # DO NOT: TARGET_LINK_LIBRARIES(BundleTest "-framework Carbon")
- # (see above comments about Carbon)
- #
- # Test bundle installation.
- #INSTALL(TARGETS BundleTestLib DESTINATION Applications/BundleTestExe.app/Contents/Plugins)
- INSTALL(TARGETS BundleTestLib DESTINATION Applications/SecondBundleExe.app/Contents/Plugins)
- INSTALL(TARGETS BundleTest DESTINATION Applications)
- # Test whether bundles respect the output name. Since the library is
- # installed into a location that uses this output name this will fail if the
- # bundle does not respect the name. Also the executable will not be found by
- # the test driver if this does not work.
- SET_TARGET_PROPERTIES(BundleTest PROPERTIES OUTPUT_NAME BundleTestExe)
- # Test executable versioning if it is supported.
- IF(NOT XCODE)
- SET_TARGET_PROPERTIES(BundleTest PROPERTIES VERSION 1)
- ENDIF(NOT XCODE)
- # Make sure the executable can find its installed library.
- SET_TARGET_PROPERTIES(BundleTestLib PROPERTIES
- INSTALL_NAME_DIR "@executable_path/../Plugins")
- INCLUDE(CPack)
- # test the framework find stuff
- IF(EXISTS /usr/lib/libtcl.dylib
- AND EXISTS /System/Library/Frameworks/Tcl.framework)
- SET(TCL NOTFOUND)
- FIND_LIBRARY(TCL tcl)
- MESSAGE("frame: ${TCL}")
- IF(NOT "${TCL}" MATCHES .framework)
- MESSAGE(FATAL_ERROR "Could not find tcl framework, found ${TCL}")
- ENDIF(NOT "${TCL}" MATCHES .framework)
- SET(TCL NOTFOUND)
- SET(CMAKE_FIND_FRAMEWORK LAST)
- FIND_LIBRARY(TCL tcl)
- IF("${TCL}" MATCHES .framework)
- MESSAGE(FATAL_ERROR "Found framework and should have found dylib ${TCL}")
- ENDIF("${TCL}" MATCHES .framework)
- SET(TCL NOTFOUND)
- SET(CMAKE_FIND_FRAMEWORK NEVER)
- FIND_LIBRARY(TCL tcl)
- IF("${TCL}" MATCHES .framework)
- MESSAGE(FATAL_ERROR "Found framework and should have found dylib ${TCL}")
- ENDIF("${TCL}" MATCHES .framework)
- MESSAGE("not frame: ${TCL}")
- SET(TCL NOTFOUND)
- SET(CMAKE_FIND_FRAMEWORK FIRST)
- FIND_LIBRARY(TCL tcl)
- IF(NOT "${TCL}" MATCHES .framework)
- MESSAGE(FATAL_ERROR "Could not find tcl framework, found ${TCL}")
- ENDIF(NOT "${TCL}" MATCHES .framework)
- MESSAGE("frame: ${TCL}")
- ENDIF(EXISTS /usr/lib/libtcl.dylib
- AND EXISTS /System/Library/Frameworks/Tcl.framework)
- SUBDIRS(BundleSubDir)
|