## ## Copyright by the Board of Trustees of the University of Illinois. ## All rights reserved. ## ## This file is part of HDF5. The full HDF5 copyright notice, including ## terms governing use, modification, and redistribution, is contained in ## the files COPYING and Copyright.html. COPYING can be found at the root ## of the source code distribution tree; Copyright.html can be found at the ## root level of an installed copy of the electronic HDF5 document set and ## is linked from the top-level documents page. It can also be found at ## http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have ## access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. ## ## HDF5 Library Makefile(.in) ## top_srcdir=@top_srcdir@ top_builddir=../.. srcdir=@srcdir@ @COMMENCE@ ## Add include directory to the C preprocessor flags, add -lh5tools and ## -lhdf5 to the list of libraries. ## Add also the test include directory for #defines CPPFLAGS=-I. -I$(srcdir) -I$(top_builddir)/src -I$(top_srcdir)/src \ -I$(top_srcdir)/test \ -I$(top_srcdir)/tools/lib @CPPFLAGS@ ## Test programs and scripts. ## TEST_PROGS=h5repacktst TEST_SCRIPTS=$(srcdir)/h5repack.sh ## These are our main targets: library and tools. ## LIBHDF5=$(top_builddir)/src/libhdf5.la LIBTOOLS=../lib/libh5tools.la PUB_PROGS=h5repack PROGS=$(PUB_PROGS) $(TEST_PROGS) ## Source and object files for the library; do not install ## LIB_SRC= LIB_OBJ=$(LIB_SRC:.c=.lo) PUB_LIB= ## Temporary files. *.h5 are generated by h5repack. They should ## copied to the testfiles/ directory if update is required. MOSTLYCLEAN=*.h5 ## Source and object files for programs... ## PROG_SRC=h5repack.c h5repack_copy.c h5repack_list.c h5repack_main.c h5repack_opttable.c h5repack_parse.c test_h5repack_add.c test_h5repack_main.c PROG_OBJ=$(PROG_SRC:.c=.lo) OBJS=h5repack.lo h5repack_copy.lo h5repack_list.lo h5repack_main.lo h5repack_opttable.lo h5repack_parse.lo TEST_OBJS=h5repack.lo h5repack_copy.lo h5repack_list.lo h5repack_opttable.lo h5repack_parse.lo test_h5repack_add.lo test_h5repack_main.lo PRIVATE_HDR= ## Source and object files for the tests ## TEST_SRC= TEST_OBJ=$(TEST_SRC:.c=.lo) ## Programs have to be built before they can be tested! ## check test _test: $(PROGS) ## How to build the programs...They all depend on the hdf5 library and ## the tools library compiled in this directory. ## $(PROGS): $(LIBTOOLS) $(LIBHDF5) h5repack: $(OBJS) @$(LT_LINK_EXE) $(CFLAGS) -o $@ $(OBJS) $(LIBTOOLS) $(LIBHDF5) $(LDFLAGS) $(LIBS) h5repacktst: $(TEST_OBJS) @$(LT_LINK_EXE) $(CFLAGS) -o $@ $(TEST_OBJS) $(LIBTOOLS) $(LIBHDF5) $(LDFLAGS) $(LIBS) @CONCLUDE@ a href='/oss-git/CMake.git/tree/Tests?h=v3.29.0-rc1&id=be9ebc104a2cfe74dec296624ddb66fe7a56949f'>Tests/VSMidl/CMakeLists.txt
blob: 342b8fb678cdfbad7a5bf9173ef11ffe94d157b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# This CMakeLists.txt file exists solely to drive the one found in the "src"
# subdir as an ExternalProject build. The project in "src" cannot build when
# there is a space in the directory name, so we copy that directory to a place
# guaranteed not to have a space in the name, build it there, and then copy the
# resulting output directory back up here into this CMake test's build tree.
#
if(NOT DEFINED CMAKE_BUILDNAME)
  string(REGEX REPLACE "^.*/([^/]+)/[^/]+/([^/]+)$" "\\1" CMAKE_BUILDNAME "${CMAKE_CURRENT_BINARY_DIR}")
  string(REGEX REPLACE "^.*/([^/]+)/[^/]+/([^/]+)$" "\\2" THIS_TESTNAME "${CMAKE_CURRENT_BINARY_DIR}")
  string(REPLACE " " "_" CMAKE_BUILDNAME "${CMAKE_BUILDNAME}")
endif()
message(STATUS "CMAKE_BUILDNAME='${CMAKE_BUILDNAME}'")
message(STATUS "THIS_TESTNAME='${THIS_TESTNAME}'")

cmake_minimum_required(VERSION 2.8.12)
project(${THIS_TESTNAME})

include(ExternalProject)

if(NOT DEFINED HOME)
  if(DEFINED ENV{CTEST_REAL_HOME})
    set(HOME "$ENV{CTEST_REAL_HOME}")
  else()
    set(HOME "$ENV{HOME}")
  endif()

  if(NOT HOME AND WIN32)
    # Try for USERPROFILE as HOME equivalent:
    string(REPLACE "\\" "/" HOME "$ENV{USERPROFILE}")
  endif()

  # But just use root of SystemDrive if HOME contains any spaces:
  # (Default on XP and earlier...)
  if(HOME MATCHES " " AND WIN32)
    string(REPLACE "\\" "/" HOME "$ENV{SystemDrive}")
  endif()
  if(HOME MATCHES " ")
    set(HOME "")
  endif()
endif()
message(STATUS "HOME='${HOME}'")

if(NOT DEFINED url)
  set(url "${CMAKE_CURRENT_SOURCE_DIR}/src")
endif()
message(STATUS "url='${url}'")

set(base_dir "${HOME}/.cmake/Dashboards/${CMAKE_BUILDNAME}/${THIS_TESTNAME}")
set(binary_dir "${base_dir}/build")
set(source_dir "${base_dir}/src")

# Source dir for this project exists in the CMake source tree, but we cannot
# use it in-place since there might be a space in its directory name.
# Source dir is therefore copied under a '.cmake/Dashboards'
# dir in your HOME directory to give it a name with no spaces.
#
ExternalProject_Add(clean-${PROJECT_NAME}
  DOWNLOAD_COMMAND ""
  CONFIGURE_COMMAND ${CMAKE_COMMAND} -E rm -rf "${source_dir}"
  BUILD_COMMAND ${CMAKE_COMMAND} -E rm -rf "${binary_dir}"
  INSTALL_COMMAND ""
  )

ExternalProject_Add(download-${PROJECT_NAME}
  URL "${url}"
  SOURCE_DIR "${source_dir}"
  CONFIGURE_COMMAND ""
  BUILD_COMMAND ""
  INSTALL_COMMAND ""
  DEPENDS clean-${PROJECT_NAME}
  )

ExternalProject_Add(build-${PROJECT_NAME}
  DOWNLOAD_COMMAND ""
  SOURCE_DIR "${source_dir}"
  BINARY_DIR "${binary_dir}"
  INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory
    "${binary_dir}/${CMAKE_CFG_INTDIR}"
    "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}"
  DEPENDS download-${PROJECT_NAME}
  )