Resync
[CMakeLuaTailorHgBridge.git] / CMakeLua / Tests / ExternalOBJ / CMakeLists.txt
blob3fef1356d1c40dec280d20c19b059610ed0433aa
1 cmake_minimum_required (VERSION 2.6)
2 PROJECT (ExternalOBJ)
4 IF(APPLE)
5   # set _CMAKE_OSX_MACHINE to umame -m
6   EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE _CMAKE_OSX_MACHINE)
7   # check for Power PC and change to ppc
8   IF("${_CMAKE_OSX_MACHINE}" MATCHES "Power")
9     SET(_CMAKE_OSX_MACHINE ppc)
10   ENDIF("${_CMAKE_OSX_MACHINE}" MATCHES "Power")
11   SET(CMAKE_OSX_ARCHITECTURES ${_CMAKE_OSX_MACHINE})
12 ENDIF(APPLE)
14 # Build the external object file.
15 TRY_COMPILE(EXTERNAL_OBJECT_BUILT
16   ${ExternalOBJ_BINARY_DIR}/Object
17   ${ExternalOBJ_SOURCE_DIR}/Object
18   Object
19   external
20   OUTPUT_VARIABLE OUTPUT
21   )
22 IF(EXTERNAL_OBJECT_BUILT)
23   MESSAGE(
24     "Building external_object.cxx succeeded with the following output:\n"
25     "[${OUTPUT}]"
26     )
27 ELSE(EXTERNAL_OBJECT_BUILT)
28   MESSAGE(FATAL_ERROR
29     "Building external_object.cxx failed with the following output:\n"
30     "[${OUTPUT}]"
31     )
32 ENDIF(EXTERNAL_OBJECT_BUILT)
34 # Find the external object file.
35 SET(DIR ${ExternalOBJ_BINARY_DIR}/Object)
36 FILE(GLOB_RECURSE EXTERNAL_OBJECT
37   "${DIR}/external_object*${CMAKE_CXX_OUTPUT_EXTENSION}")
38 IF(EXTERNAL_OBJECT)
39   LIST (GET EXTERNAL_OBJECT 0 EXTERNAL_OBJECT)
40   MESSAGE("Found \"${EXTERNAL_OBJECT}\".")
41 ELSE(EXTERNAL_OBJECT)
42   MESSAGE(FATAL_ERROR "Could not find external object.")
43 ENDIF(EXTERNAL_OBJECT)
45 # Test creation of external objects by custom commands.
46 SET(CUSTOM_OBJECT
47   ${CMAKE_CURRENT_BINARY_DIR}/custom_object${CMAKE_C_OUTPUT_EXTENSION})
48 ADD_CUSTOM_COMMAND(
49   OUTPUT ${CUSTOM_OBJECT}
50   COMMAND ${CMAKE_COMMAND} -E copy ${EXTERNAL_OBJECT} ${CUSTOM_OBJECT}
51   DEPENDS ${EXTERNAL_OBJECT}
52   )
54 # Build an executable using the external object file.
55 ADD_EXECUTABLE(ExternalOBJ executable.cxx ${CUSTOM_OBJECT})