Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build examples with CMake #98

Merged
merged 3 commits into from
Jun 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -214,15 +214,12 @@ if(enable_tests)
add_subdirectory(TESTING)
endif()

if(enable_examples)
enable_testing()
add_subdirectory(EXAMPLE)
endif()

if (XSDK_ENABLE_Fortran)
add_subdirectory(FORTRAN)
endif()

add_subdirectory(EXAMPLE)

add_subdirectory(DOC)

# Generate various configure files with proper definitions
Expand Down
200 changes: 200 additions & 0 deletions EXAMPLE/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,200 @@
include_directories(${SuperLU_SOURCE_DIR}/SRC)

# build examples for target "all" only if enable_examples is set
if(NOT enable_examples)
set(_DEPENDENCY_ALL "EXCLUDE_FROM_ALL")
endif()

# targets to build examples
add_custom_target(examples_complex)
add_dependencies(examples_complex
citersol citersol1
clinsol clinsol1 clinsolx clinsolx1 clinsolx2 clinsolx3)
add_custom_target(examples_double)
add_dependencies(examples_double
ditersol ditersol1
dlinsol dlinsol1 dlinsolx dlinsolx1 dlinsolx2 dlinsolx3)
add_custom_target(examples_float)
add_dependencies(examples_float
sitersol sitersol1
slinsol slinsol1 slinsolx slinsolx1 slinsolx2 slinsolx3)
add_custom_target(examples_doublecomplex)
add_dependencies(examples_doublecomplex
zitersol zitersol1
zlinsol zlinsol1 zlinsolx zlinsolx1 zlinsolx2 zlinsolx3)
add_custom_target(examples)
add_dependencies(examples
superlu_example
examples_complex
examples_double
examples_float
examples_doublecomplex)

add_executable(superlu_example
${_DEPENDENCY_ALL}
superlu.c)
target_link_libraries(superlu_example superlu)

# examples for complex
add_executable(citersol
${_DEPENDENCY_ALL}
citersol.c cfgmr.c)
target_link_libraries(citersol superlu)

add_executable(citersol1
${_DEPENDENCY_ALL}
citersol1.c cfgmr.c)
target_link_libraries(citersol1 superlu)

add_executable(clinsol
${_DEPENDENCY_ALL}
clinsol.c)
target_link_libraries(clinsol superlu)

add_executable(clinsol1
${_DEPENDENCY_ALL}
clinsol1.c)
target_link_libraries(clinsol1 superlu)

add_executable(clinsolx
${_DEPENDENCY_ALL}
clinsolx.c)
target_link_libraries(clinsolx superlu)

add_executable(clinsolx1
${_DEPENDENCY_ALL}
clinsolx1.c)
target_link_libraries(clinsolx1 superlu)

add_executable(clinsolx2
${_DEPENDENCY_ALL}
clinsolx2.c)
target_link_libraries(clinsolx2 superlu)

add_executable(clinsolx3
${_DEPENDENCY_ALL}
clinsolx3.c)
target_link_libraries(clinsolx3 superlu)

# examples for double
add_executable(ditersol
${_DEPENDENCY_ALL}
ditersol.c dfgmr.c)
target_link_libraries(ditersol superlu)

add_executable(ditersol1
${_DEPENDENCY_ALL}
ditersol1.c dfgmr.c)
target_link_libraries(ditersol1 superlu)

add_executable(dlinsol
${_DEPENDENCY_ALL}
dlinsol.c)
target_link_libraries(dlinsol superlu)

add_executable(dlinsol1
${_DEPENDENCY_ALL}
dlinsol1.c)
target_link_libraries(dlinsol1 superlu)

add_executable(dlinsolx
${_DEPENDENCY_ALL}
dlinsolx.c)
target_link_libraries(dlinsolx superlu)

add_executable(dlinsolx1
${_DEPENDENCY_ALL}
dlinsolx1.c)
target_link_libraries(dlinsolx1 superlu)

add_executable(dlinsolx2
${_DEPENDENCY_ALL}
dlinsolx2.c)
target_link_libraries(dlinsolx2 superlu)

add_executable(dlinsolx3
${_DEPENDENCY_ALL}
dlinsolx3.c)
target_link_libraries(dlinsolx3 superlu)

# examples for float
add_executable(sitersol
${_DEPENDENCY_ALL}
sitersol.c sfgmr.c)
target_link_libraries(sitersol superlu)

add_executable(sitersol1
${_DEPENDENCY_ALL}
sitersol1.c sfgmr.c)
target_link_libraries(sitersol1 superlu)

add_executable(slinsol
${_DEPENDENCY_ALL}
slinsol.c)
target_link_libraries(slinsol superlu)

add_executable(slinsol1
${_DEPENDENCY_ALL}
slinsol1.c)
target_link_libraries(slinsol1 superlu)

add_executable(slinsolx
${_DEPENDENCY_ALL}
slinsolx.c)
target_link_libraries(slinsolx superlu)

add_executable(slinsolx1
${_DEPENDENCY_ALL}
slinsolx1.c)
target_link_libraries(slinsolx1 superlu)

add_executable(slinsolx2
${_DEPENDENCY_ALL}
slinsolx2.c)
target_link_libraries(slinsolx2 superlu)

add_executable(slinsolx3
${_DEPENDENCY_ALL}
slinsolx3.c)
target_link_libraries(slinsolx3 superlu)

# examples for double complex
add_executable(zitersol
${_DEPENDENCY_ALL}
zitersol.c zfgmr.c)
target_link_libraries(zitersol superlu)

add_executable(zitersol1
${_DEPENDENCY_ALL}
zitersol1.c zfgmr.c)
target_link_libraries(zitersol1 superlu)

add_executable(zlinsol
${_DEPENDENCY_ALL}
zlinsol.c)
target_link_libraries(zlinsol superlu)

add_executable(zlinsol1
${_DEPENDENCY_ALL}
zlinsol1.c)
target_link_libraries(zlinsol1 superlu)

add_executable(zlinsolx
${_DEPENDENCY_ALL}
zlinsolx.c)
target_link_libraries(zlinsolx superlu)

add_executable(zlinsolx1
${_DEPENDENCY_ALL}
zlinsolx1.c)
target_link_libraries(zlinsolx1 superlu)

add_executable(zlinsolx2
${_DEPENDENCY_ALL}
zlinsolx2.c)
target_link_libraries(zlinsolx2 superlu)

add_executable(zlinsolx3
${_DEPENDENCY_ALL}
zlinsolx3.c)
target_link_libraries(zlinsolx3 superlu)
Loading