Bläddra i källkod

ENH: Improve the test to create a bundle in the subdirectory

Andy Cedilnik 19 år sedan
förälder
incheckning
9dffe62736

+ 1 - 1
Source/CMakeLists.txt

@@ -964,7 +964,7 @@ IF(BUILD_TESTING)
       --build-options "-DCMAKE_INSTALL_PREFIX:PATH=${BundleTestInstallDir}"
        "-DCMake_SOURCE_DIR:PATH=${CMAKE_SOURCE_DIR}"
       --test-command
-      ${BundleTestInstallDir}/Application/BundleTestExe.app/Contents/MacOS/BundleTestExe)
+      ${BundleTestInstallDir}/Application/SecondBundleExe.app/Contents/MacOS/SecondBundleExe)
 
     ADD_TEST(objc++ ${CMAKE_CTEST_COMMAND}
       --build-and-test

+ 36 - 0
Tests/BundleTest/BundleSubDir/CMakeLists.txt

@@ -0,0 +1,36 @@
+ADD_CUSTOM_COMMAND(
+  OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/randomResourceFile.plist"
+  COMMAND /bin/cp
+  ARGS "${BundleTest_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(
+  "${BundleTest_SOURCE_DIR}/SomeRandomFile.txt"
+  "${CMake_SOURCE_DIR}/ChangeLog.txt"
+  PROPERTIES
+  MACOSX_PACKAGE_LOCATION MacOS
+  )
+
+ADD_EXECUTABLE(SecondBundle
+  MACOSX_BUNDLE
+  "${BundleTest_SOURCE_DIR}/BundleTest.cxx"
+  "${BundleTest_SOURCE_DIR}/SomeRandomFile.txt"
+  "${CMake_SOURCE_DIR}/ChangeLog.txt"
+  "${CMAKE_CURRENT_BINARY_DIR}/randomResourceFile.plist"
+  )
+TARGET_LINK_LIBRARIES(SecondBundle BundleTestLib)
+ 
+# Test bundle installation.
+INSTALL(TARGETS SecondBundle DESTINATION Application)
+
+# 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(SecondBundle PROPERTIES OUTPUT_NAME SecondBundleExe)

+ 4 - 1
Tests/BundleTest/CMakeLists.txt

@@ -36,7 +36,8 @@ ADD_EXECUTABLE(BundleTest
 TARGET_LINK_LIBRARIES(BundleTest BundleTestLib)
 
 # Test bundle installation.
-INSTALL(TARGETS BundleTestLib DESTINATION Application/BundleTestExe.app/Contents/Plugins)
+#INSTALL(TARGETS BundleTestLib DESTINATION Application/BundleTestExe.app/Contents/Plugins)
+INSTALL(TARGETS BundleTestLib DESTINATION Application/SecondBundleExe.app/Contents/Plugins)
 INSTALL(TARGETS BundleTest DESTINATION Application)
 
 # Test whether bundles respect the output name.  Since the library is
@@ -87,3 +88,5 @@ IF(EXISTS /usr/lib/libtcl.dylib
   MESSAGE("frame: ${TCL}")
 ENDIF(EXISTS /usr/lib/libtcl.dylib
   AND EXISTS /System/Library/Frameworks/tcl.framework)
+
+SUBDIRS(BundleSubDir)