@@ -119,74 +119,116 @@ if(EXODUSII_LIBRARY)
119119endif ()
120120
121121# Add libspatialindex
122- FetchContent_Declare(libspatialindex
123- GIT_REPOSITORY https://github.com/libspatialindex/libspatialindex
124- GIT_TAG origin/master
125- LOG_DOWNLOAD ON
126- LOG_CONFIGURE ON
127- LOG_BUILD ON
128- LOG_INSTALL ON
129- )
122+ if (DEFINED USE_BUNDLED_LIBSPATIALINDEX)
123+ FetchContent_Declare(libspatialindex
124+ SOURCE_DIR ${CMAKE_SOURCE_DIR} /spatialindex-1.8.0
125+ LOG_CONFIGURE ON
126+ LOG_BUILD ON
127+ LOG_INSTALL ON
128+ )
129+ else ()
130+ FetchContent_Declare(libspatialindex
131+ GIT_REPOSITORY https://github.com/libspatialindex/libspatialindex
132+ GIT_TAG origin/master
133+ LOG_DOWNLOAD ON
134+ LOG_CONFIGURE ON
135+ LOG_BUILD ON
136+ LOG_INSTALL ON
137+ )
138+ endif ()
130139FetchContent_MakeAvailable(libspatialindex)
131140
132141# Add Judy
133- ExternalProject_Add(libjudy
134- PREFIX libjudy
135- URL https://sourceforge.net/projects/judy/files /judy/Judy-1.0.5/Judy-1.0.5.tar.gz/download
136- CONFIGURE_COMMAND ./configure --enable-64-bit --prefix =<SOURCE_DIR>
137- BUILD_COMMAND make
138- BUILD_IN_SOURCE TRUE
139- INSTALL_COMMAND make install exec_prefix=<SOURCE_DIR>
140- TEST_COMMAND make check
141- TEST_BEFORE_INSTALL TRUE
142- LOG_DOWNLOAD ON
143- LOG_CONFIGURE ON
144- LOG_BUILD ON
145- LOG_INSTALL ON
146- LOG_TEST ON
147- )
142+ if (DEFINED USE_BUNDLED_LIBJUDY)
143+ ExternalProject_Add(libjudy
144+ SOURCE_DIR ${CMAKE_SOURCE_DIR} /libjudy
145+ CONFIGURE_COMMAND ./configure --enable-64-bit --prefix =<SOURCE_DIR>
146+ BUILD_COMMAND make
147+ BUILD_IN_SOURCE TRUE
148+ INSTALL_COMMAND make install exec_prefix=<SOURCE_DIR>
149+ TEST_COMMAND make check
150+ TEST_BEFORE_INSTALL TRUE
151+ LOG_CONFIGURE ON
152+ LOG_BUILD ON
153+ LOG_INSTALL ON
154+ LOG_TEST ON
155+ )
156+ else ()
157+ ExternalProject_Add(libjudy
158+ PREFIX libjudy
159+ URL https://sourceforge.net/projects/judy/files /judy/Judy-1.0.5/Judy-1.0.5.tar.gz/download
160+ CONFIGURE_COMMAND ./configure --enable-64-bit --prefix =<SOURCE_DIR>
161+ BUILD_COMMAND make
162+ BUILD_IN_SOURCE TRUE
163+ INSTALL_COMMAND make install exec_prefix=<SOURCE_DIR>
164+ TEST_COMMAND make check
165+ TEST_BEFORE_INSTALL TRUE
166+ LOG_DOWNLOAD ON
167+ LOG_CONFIGURE ON
168+ LOG_BUILD ON
169+ LOG_INSTALL ON
170+ LOG_TEST ON
171+ )
172+ endif ()
148173ExternalProject_Add_Step(libjudy byproducts
149174 DEPENDEES install
150175 BYPRODUCTS <SOURCE_DIR>/lib/libJudy.a
151176 LOG ON
152177)
153178ExternalProject_Get_property(libjudy SOURCE_DIR)
154- set (libjudy_SOURCE_DIR ${SOURCE_DIR} )
179+
155180add_library (Judy STATIC IMPORTED )
156181set_target_properties (Judy
157- PROPERTIES IMPORTED_LOCATION ${libjudy_SOURCE_DIR } /lib/libJudy.a
182+ PROPERTIES IMPORTED_LOCATION ${SOURCE_DIR } /lib/libJudy.a
158183)
159184
185+ set (LIBJUDY_INCLUDE_DIR ${SOURCE_DIR} /src)
186+
160187# Add Zoltan
161- set (ZOLTAN_CONFIGURE "../libzoltan/configure --enable-f90interface --with-gnumake --with-scotch --with-parmetis" )
162- if (${CMAKE_C_COMPILER_VERSION} GREATER_EQUAL 10)
163- string (APPEND ZOLTAN_CONFIGURE " FCFLAGS=-fallow-argument-mismatch" )
164- endif ()
165- if (DEFINED ENV{PETSC_ARCH})
166- string (APPEND ZOLTAN_CONFIGURE " --with-scotch-incdir=$ENV{PETSC_DIR} /$ENV{PETSC_ARCH} /include --with-scotch-libdir=$ENV{PETSC_DIR} /$ENV{PETSC_ARCH} /lib --with-parmetis-incdir=$ENV{PETSC_DIR} /$ENV{PETSC_ARCH} /include --with-parmetis-libdir=$ENV{PETSC_DIR} /$ENV{PETSC_ARCH} /lib" )
167- else ()
168- string (APPEND ZOLTAN_CONFIGURE " --with-scotch-incdir=$ENV{PETSC_DIR} /include --with-scotch-libdir=$ENV{PETSC_DIR} /lib --with-parmetis-incdir=$ENV{PETSC_DIR} /include --with-parmetis-libdir=$ENV{PETSC_DIR} /lib" )
188+ if (DEFINED USE_EXISTING_ZOLTAN)
189+ find_library (ZOLTAN_LIBRARY zoltan HINTS ${USE_EXISTING_ZOLTAN} REQUIRED)
190+ find_path (ZOLTAN_INCLUDE_DIR zoltan.h HINTS ${USE_EXISTING_ZOLTAN} REQUIRED)
191+
192+ add_library (Zoltan STATIC IMPORTED )
193+ set_target_properties (Zoltan PROPERTIES IMPORTED_LOCATION ${ZOLTAN_LIBRARY} )
194+
195+ else ()
196+ set (ZOLTAN_CONFIGURE "../libzoltan/configure --enable-f90interface --with-gnumake --with-scotch --with-parmetis" )
197+
198+ if (${CMAKE_C_COMPILER_VERSION} GREATER_EQUAL 10)
199+ string (APPEND ZOLTAN_CONFIGURE " FCFLAGS=-fallow-argument-mismatch" )
200+ endif ()
201+
202+ if (DEFINED ENV{PETSC_ARCH})
203+ string (APPEND ZOLTAN_CONFIGURE " --with-scotch-incdir=$ENV{PETSC_DIR} /$ENV{PETSC_ARCH} /include --with-scotch-libdir=$ENV{PETSC_DIR} /$ENV{PETSC_ARCH} /lib --with-parmetis-incdir=$ENV{PETSC_DIR} /$ENV{PETSC_ARCH} /include --with-parmetis-libdir=$ENV{PETSC_DIR} /$ENV{PETSC_ARCH} /lib" )
204+ else ()
205+ string (APPEND ZOLTAN_CONFIGURE " --with-scotch-incdir=$ENV{PETSC_DIR} /include --with-scotch-libdir=$ENV{PETSC_DIR} /lib --with-parmetis-incdir=$ENV{PETSC_DIR} /include --with-parmetis-libdir=$ENV{PETSC_DIR} /lib" )
206+ endif ()
207+
208+ separate_arguments (ZOLTAN_CONFIGURE UNIX_COMMAND ${ZOLTAN_CONFIGURE} )
209+
210+ ExternalProject_Add(libzoltan
211+ PREFIX Zoltan
212+ GIT_REPOSITORY https://github.com/sandialabs/Zoltan
213+ GIT_TAG origin/main
214+ CONFIGURE_COMMAND ${ZOLTAN_CONFIGURE}
215+ BUILD_COMMAND make everything
216+ BUILD_BYPRODUCTS <BINARY_DIR>/src/libzoltan.a
217+ INSTALL_COMMAND ""
218+ LOG_DOWNLOAD ON
219+ LOG_CONFIGURE ON
220+ LOG_BUILD ON
221+ )
222+ ExternalProject_Get_property(libzoltan BINARY_DIR)
223+
224+ add_library (Zoltan STATIC IMPORTED )
225+ add_dependencies (Zoltan libzoltan)
226+ set_target_properties (Zoltan
227+ PROPERTIES IMPORTED_LOCATION ${BINARY_DIR} /src/libzoltan.a
228+ )
229+
230+ set (ZOLTAN_INCLUDE_DIR ${BINARY_DIR} /src)
169231endif ()
170- separate_arguments (ZOLTAN_CONFIGURE UNIX_COMMAND ${ZOLTAN_CONFIGURE} )
171- ExternalProject_Add(libzoltan
172- PREFIX Zoltan
173- GIT_REPOSITORY https://github.com/sandialabs/Zoltan
174- GIT_TAG origin/main
175- CONFIGURE_COMMAND ${ZOLTAN_CONFIGURE}
176- BUILD_COMMAND make everything
177- BUILD_BYPRODUCTS <BINARY_DIR>/src/libzoltan.a
178- INSTALL_COMMAND ""
179- LOG_DOWNLOAD ON
180- LOG_CONFIGURE ON
181- LOG_BUILD ON
182- )
183- ExternalProject_Get_property(libzoltan BINARY_DIR)
184- set (Zoltan_BINARY_DIR ${BINARY_DIR} )
185- add_library (Zoltan STATIC IMPORTED )
186- add_dependencies (Zoltan libzoltan)
187- set_target_properties (Zoltan
188- PROPERTIES IMPORTED_LOCATION ${Zoltan_BINARY_DIR} /src/libzoltan.a
189- )
190232
191233# Generate some source files
192234add_custom_command (
@@ -369,8 +411,8 @@ target_include_directories(fluidity PUBLIC
369411 $<$<BOOL :${EXODUSII_INCLUDE_DIR} >:${EXODUSII_INCLUDE_DIR} >
370412
371413 ${libspatialindex_SOURCE_DIR} /include
372- ${libjudy_SOURCE_DIR} /src
373- ${Zoltan_BINARY_DIR} /src
414+ ${LIBJUDY_INCLUDE_DIR}
415+ ${ZOLTAN_INCLUDE_DIR}
374416
375417 ${CMAKE_BINARY_DIR} /include
376418 ${CMAKE_SOURCE_DIR} /include
@@ -430,6 +472,16 @@ add_executable(fluidity_binary main.cpp)
430472set_target_properties (fluidity_binary PROPERTIES OUTPUT_NAME fluidity)
431473target_link_libraries (fluidity_binary fluidity)
432474
475+ # Install Python packages included in Fluidity's repository
476+ add_custom_target (install_python_packages)
477+ add_dependencies (install_python_packages fluidity_python spud_diamond spud_dxdiff spud_python)
478+
479+ # Uninstall Python packages included in Fluidity's repository
480+ add_custom_target (uninstall_python_packages
481+ COMMAND ${Python3_EXECUTABLE} -m pip uninstall -y diamond dxdiff fluidity libspud
482+ VERBATIM
483+ )
484+
433485# Build the fluidity manual
434486add_custom_target (manual
435487 COMMAND make
0 commit comments