From 5fb51fafa163276a3213cf02b411d10d5e8b1727 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luca=20Pep=C3=A8=20Sciarria?= Date: Thu, 6 Mar 2025 10:49:51 +0100 Subject: [PATCH 01/10] configure CMake to properly set the install target --- CMakeLists.txt | 91 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 65 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ea499474..f6052693 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -353,8 +353,12 @@ find_package(METIS) include(GNUInstallDirs) #set(mod_dir_tail "${${CMAKE_PROJECT_NAME}_dist_string}_${CMAKE_Fortran_COMPILER_ID}-${CMAKE_Fortran_COMPILER_VERSION}") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}/${${CMAKE_PROJECT_NAME}_dist_string}-tests") -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}") -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") +set(CMAKE_INSTALL_LIBDIR "lib" CACHE STRING "Library install directory") +set(CMAKE_INSTALL_INCLUDEDIR "include" CACHE STRING "Include directory") +set(CMAKE_INSTALL_MODULDIR "modules" CACHE STRING "Module directory") + #----------------------------------- # Turn on testing/ctest capabilities @@ -397,15 +401,16 @@ write_basic_package_version_file( COMPATIBILITY SameMajorVersion ) -configure_file("${CMAKE_SOURCE_DIR}/cmake/pkg/${CMAKE_PROJECT_NAME}Config.cmake.in" +configure_file("${CMAKE_SOURCE_DIR}/cmake/${CMAKE_PROJECT_NAME}Config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${CMAKE_PROJECT_NAME}Config.cmake" @ONLY) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${CMAKE_PROJECT_NAME}Config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}ConfigVersion.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/psblasTargets.cmake" DESTINATION - "${CMAKE_INSTALL_LIBDIR}/cmake/psblas" + "${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}" ) #------------------------------------------ @@ -804,11 +809,31 @@ message(STATUS "\t\t ${CMAKE_INSTALL_LIBDIR}") # DESTINATION include #) -install(DIRECTORY "${CMAKE_BINARY_DIR}/include" DESTINATION "include" - FILES_MATCHING PATTERN "*.h") +#install(DIRECTORY "${CMAKE_BINARY_DIR}/include" DESTINATION "include" +# FILES_MATCHING PATTERN "*.h") + +#install(DIRECTORY "${CMAKE_BINARY_DIR}/modules" DESTINATION "modules" +# FILES_MATCHING PATTERN "*.mod") + + +#install(DIRECTORY "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}" DESTINATION "include" +# FILES_MATCHING PATTERN "*.h") + +#install(DIRECTORY "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_MODULDIR}" DESTINATION "modules" +# FILES_MATCHING PATTERN "*.mod") + +# Install header files +install(DIRECTORY ${CMAKE_BINARY_DIR}/include/ + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" # This will place headers in /include + FILES_MATCHING PATTERN "*.h" +) + +# Install module files +install(DIRECTORY ${CMAKE_BINARY_DIR}/modules/ + DESTINATION "${CMAKE_INSTALL_MODULDIR}" # This will place .mod files in /modules + FILES_MATCHING PATTERN "*.mod" +) -install(DIRECTORY "${CMAKE_BINARY_DIR}/modules" DESTINATION "modules" - FILES_MATCHING PATTERN "*.mod") install(TARGETS base prec linsolve ext util cbind @@ -834,26 +859,40 @@ if(WIN32) endif() endif() -# Step 2: Create the configuration file from the template -configure_package_config_file( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/psblasConfig.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/psblasConfig.cmake" - INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/psblas" -) -# Step 3: Install the generated config files -install(FILES - "${CMAKE_CURRENT_BINARY_DIR}/psblasConfig.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/psblasConfigVersion.cmake" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/psblas" -) +#configure_package_config_file( +# "${CMAKE_CURRENT_SOURCE_DIR}/cmake/psblasConfig.cmake.in" +# "${CMAKE_CURRENT_BINARY_DIR}/psblasConfig.cmake" +# INSTALL_DESTINATION "${CMAKE_INSTALL_PREFIX}/cmake/psblas" +#) + +#install(FILES +# "${CMAKE_CURRENT_BINARY_DIR}/psblasConfig.cmake" +# "${CMAKE_CURRENT_BINARY_DIR}/psblasConfigVersion.cmake" +# DESTINATION "${CMAKE_INSTALL_PREFIX}/cmake/psblas" +#) + + +#export( +# EXPORT ${CMAKE_PROJECT_NAME}-targets +# FILE "${CMAKE_CURRENT_BINARY_DIR}/psblasTargets.cmake" +# NAMESPACE psblas:: +#) + + + + + + + + + +message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX};") +message(STATUS "CMAKE_INSTALL_LIBDIR: ${CMAKE_INSTALL_LIBDIR};") +message(STATUS "CMAKE_INSTALL_INCLUDEDIR: ${CMAKE_INSTALL_INCLUDEDIR};") +message(STATUS "CMAKE_INSTALL_MODULDIR: ${CMAKE_INSTALL_MODULDIR};") + -# Step 4: Export targets so that the build directory can be used directly -export( - EXPORT ${CMAKE_PROJECT_NAME}-targets - FILE "${CMAKE_CURRENT_BINARY_DIR}/psblasTargets.cmake" - NAMESPACE psblas:: -) #----------------- # Add PSBLAS tests #----------------- From 78cf9c508cbe60e8dec6a27bf17dad983e2b920c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luca=20Pep=C3=A8=20Sciarria?= Date: Thu, 6 Mar 2025 10:50:24 +0100 Subject: [PATCH 02/10] adapt CMakeLists.txt to handle installed psblas --- test/hello/CMakeLists.txt | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/test/hello/CMakeLists.txt b/test/hello/CMakeLists.txt index a35c7582..70b0b04d 100644 --- a/test/hello/CMakeLists.txt +++ b/test/hello/CMakeLists.txt @@ -2,16 +2,18 @@ cmake_minimum_required(VERSION 3.10) project(HelloWorld Fortran) # Accept a user-defined library path -#set(LIBRARY_DIR "" CACHE PATH "Path to the library directory") +set(LIBRARY_DIR "" CACHE PATH "Path to the library directory") # Check if the user provided a library directory -#if(NOT LIBRARY_DIR) -# message(FATAL_ERROR "Library directory not specified! Use -DLIBRARY_DIR=path/to/library") -#endif() +if(NOT LIBRARY_DIR) + message(FATAL_ERROR "Library directory not specified! Use -DLIBRARY_DIR=path/to/library") +endif() +# Include CMakePackageConfigHelpers to work with configuration files include(CMakePackageConfigHelpers) + # Find the package -find_package(psblas REQUIRED) +find_package(psblas REQUIRED PATHS ${LIBRARY_DIR}/lib/cmake/psblas NO_DEFAULT_PATH) # Check if the package was found if(NOT psblas_FOUND) @@ -19,15 +21,15 @@ if(NOT psblas_FOUND) endif() # Include directories for the library -#include_directories(${LIBRARY_DIR}/include) # Path to header files -include_directories(${psblas_DIR}/modules) # Path to module files - message(STATUS "Library directory ${psblas_DIR}") - +include_directories(${LIBRARY_DIR}/include) # Path to header files +include_directories(${psblas_DIR}/modules) # Path to module files + +message(STATUS "Library directory: ${psblas_DIR}") + # Add the executables add_executable(hello hello.f90) add_executable(pingpong pingpong.f90) - # Link the specific library targets target_link_libraries(hello PRIVATE psblas::base) target_link_libraries(pingpong PRIVATE psblas::base) From ffaeb4662c4f6f9da4c04920178a062bfa66a001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luca=20Pep=C3=A8=20Sciarria?= Date: Thu, 13 Mar 2025 11:48:48 +0100 Subject: [PATCH 03/10] update cmake to work when metis is not installed --- util/CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/util/CMakeLists.txt b/util/CMakeLists.txt index 02a71bd8..1c6b3719 100644 --- a/util/CMakeLists.txt +++ b/util/CMakeLists.txt @@ -39,9 +39,15 @@ foreach(file IN LISTS PSB_util_source_files) endforeach() set(PSB_util_source_C_files - psb_metis_int.c + psb_amd_order.c ) +set(PSB_util_source_C__metis_files + + psb_metis_int.c + ) + + foreach(file IN LISTS PSB_util_source_C_files) list(APPEND util_source_C_files ${CMAKE_CURRENT_LIST_DIR}/${file}) endforeach() From 14bd799be874f5b751e37d64c6fe7d5612a37a18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luca=20Pep=C3=A8=20Sciarria?= Date: Thu, 13 Mar 2025 11:49:11 +0100 Subject: [PATCH 04/10] add proper installation procedure --- CMakeLists.txt | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f6052693..718477e0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -439,6 +439,21 @@ if(MPI_FOUND) endif() endif() + + +#------------------------------------------ +# Configure the psb_config.h file +#------------------------------------------ + +message(STATUS "bin dir ${CMAKE_CURRENT_BINARY_DIR}; source dir ${CMAKE_CURRENT_SOURCE_DIR};;") +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/base/modules/psb_config.h.in + ${CMAKE_CURRENT_BINARY_DIR}/include/psb_config.h + @ONLY # Replace variables only +) + + + #--------------------------------------- # Add the PSBLAS libraries and utilities #--------------------------------------- @@ -587,7 +602,14 @@ if(WIN32) PUBLIC psb_util_C) endif() else() + + if(METIS_FOUND) + foreach(file IN LISTS util_source_C_metis_files) + list(APPEND util_source_C_files file) + endforeach() + endif() add_library(psb_util_C OBJECT ${util_source_C_files}) + add_library(util ${util_source_files} $) endif() set_target_properties(util @@ -873,11 +895,11 @@ endif() #) -#export( -# EXPORT ${CMAKE_PROJECT_NAME}-targets -# FILE "${CMAKE_CURRENT_BINARY_DIR}/psblasTargets.cmake" -# NAMESPACE psblas:: -#) +export( + EXPORT ${CMAKE_PROJECT_NAME}-targets + FILE "${CMAKE_CURRENT_BINARY_DIR}/psblasTargets.cmake" + NAMESPACE psblas:: +) From e7f1a47b7e6a706c5538103a8e0be1700a2d7b05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luca=20Pep=C3=A8=20Sciarria?= Date: Thu, 13 Mar 2025 16:51:57 +0100 Subject: [PATCH 05/10] update cmake to work when metis is not installed --- util/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/util/CMakeLists.txt b/util/CMakeLists.txt index 1c6b3719..7656355e 100644 --- a/util/CMakeLists.txt +++ b/util/CMakeLists.txt @@ -51,3 +51,7 @@ set(PSB_util_source_C__metis_files foreach(file IN LISTS PSB_util_source_C_files) list(APPEND util_source_C_files ${CMAKE_CURRENT_LIST_DIR}/${file}) endforeach() + +foreach(file IN LISTS PSB_util_source_C_metis_files) + list(APPEND util_source_C_files ${CMAKE_CURRENT_LIST_DIR}/${file}) +endforeach() From 7b92174c37b3d8324427ce669784d582dce809f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luca=20Pep=C3=A8=20Sciarria?= Date: Mon, 17 Mar 2025 11:20:57 +0100 Subject: [PATCH 06/10] hot update --- CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 718477e0..38d7c2f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -390,7 +390,7 @@ define_property(TARGET install(EXPORT ${CMAKE_PROJECT_NAME}-targets FILE ${CMAKE_PROJECT_NAME}Config.cmake NAMESPACE ${CMAKE_PROJECT_NAME}:: - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/" ) @@ -408,7 +408,7 @@ install( FILES "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${CMAKE_PROJECT_NAME}Config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}ConfigVersion.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/psblasTargets.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}Targets.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}" ) @@ -898,7 +898,7 @@ endif() export( EXPORT ${CMAKE_PROJECT_NAME}-targets FILE "${CMAKE_CURRENT_BINARY_DIR}/psblasTargets.cmake" - NAMESPACE psblas:: + NAMESPACE ${CMAKE_PROJECT_NAME}:: ) From 3735ab09d0351bafef09cf382e23eec5afcc6cc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luca=20Pep=C3=A8=20Sciarria?= Date: Fri, 21 Mar 2025 14:04:29 +0100 Subject: [PATCH 07/10] add CUDA stub building --- CMakeLists.txt | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 38d7c2f6..0b2c72f1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -785,6 +785,68 @@ message(STATUS "Copied .h files to ${CMAKE_BINARY_DIR}/include") + +######################################### +####### BUILD CUDA LIBRARY ############## +######################################### + + +# Optionally check for CUDA requirement +option(BUILD_CUDA "Build CUDA code" OFF) + +if(BUILD_CUDA) + + + # Include the CMakeLists for the cbind library + include(${CMAKE_CURRENT_LIST_DIR}/cuda/CMakeLists.txt) + + + + + find_package(CUDA REQUIRED) + + + # Define the CUDA library + #if(WIN32) + #add_library(psb_cuda_C STATIC ${cuda_source_files}) + #target_compile_definitions(psb_cuda_C + # PRIVATE -DWIN32 -D_LIB -DWIN64) + #set_target_properties(psb_cuda_C + # PROPERTIES + # LINKER_LANGUAGE C + # POSITION_INDEPENDENT_CODE TRUE) + #target_link_libraries(psb_cuda_C + # PUBLIC kernel32 user32 shell32) + #else() + #add_library(psb_cuda_C OBJECT ${cuda_source_files}) + #endif() + + add_library(psb_cuda_C OBJECT ${cuda_source_c_files}) + + + # Create the main CUDA library + add_library(cuda ${cuda_source_files}) + + # Set properties for the CUDA library + set_target_properties(cuda + PROPERTIES + POSITION_INDEPENDENT_CODE TRUE + OUTPUT_NAME psb_cuda + LINKER_LANGUAGE C) + + # Include directories for the CUDA library + target_include_directories(cuda PUBLIC + $ # Path for building + $ # Path for installation + ) + + # Link with other necessary libraries + target_link_libraries(cuda PUBLIC base prec linsolve ext util) +endif() + + + + if(MPI_FOUND) # Copy mpi.mod from the first available path in MPI_Fortran_INCLUDE_PATH set(MPI_MOD_COPIED FALSE) From 017735a4ba014877793a77bb3d2b4d8a86d7d08c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luca=20Pep=C3=A8=20Sciarria?= Date: Fri, 21 Mar 2025 14:56:21 +0100 Subject: [PATCH 08/10] define proper flags fro psb_config.h --- CMakeLists.txt | 61 +++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 53 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0b2c72f1..734d1dac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -99,7 +99,7 @@ endif() message(STATUS "win? ${WIN32};") -if(TRUE )#NOT ${WIN32}) +if(TRUE)#NOT ${WIN32}) #previous check did not work if WIN32 is empty string #---------------------------------------------- # Determine system endian-ness and pointer size @@ -118,18 +118,37 @@ if(TRUE )#NOT ${WIN32}) add_compile_options(-DPtr64Bits) endif() message(STATUS "Have 64bit pointers") + - #add define values for integer size (IPKx) and long size (LPKx) - CHECK_TYPE_SIZE("int" INT_SIZE LANGUAGE C) - CHECK_TYPE_SIZE("long" LONG_SIZE LANGUAGE C) - message(STATUS "INT SIZE ${INT_SIZE}") +endif() - add_compile_options(-DIPK${INT_SIZE}) - add_compile_options(-DLPK${LONG_SIZE}) - + +# Set default values for IPK_SIZE and LPK_SIZE +set(DEFAULT_IPK_SIZE 4) +set(DEFAULT_LPK_SIZE 8) + +# Allow user to override with command line definitions +if(NOT DEFINED IPK_SIZE) + set(IPK_SIZE ${DEFAULT_IPK_SIZE} CACHE STRING "Size of IPK (default: 4)") +endif() + +if(NOT DEFINED LPK_SIZE) + set(LPK_SIZE ${DEFAULT_LPK_SIZE} CACHE STRING "Size of LPK (default: 8)") endif() +# Define IPKDEF and LPKDEF based on the sizes +set(IPKDEF "#define IPK${IPK_SIZE}") +set(LPKDEF "#define LPK${LPK_SIZE}") + +# Output the definitions for verification +message(STATUS "Using IPKDEF: ${IPKDEF}") +message(STATUS "Using LPKDEF: ${LPKDEF}") + +add_compile_options(-DIPK${IPK_SIZE}) +add_compile_options(-DLPK${LPK_SIZE}) + + @@ -319,6 +338,7 @@ else() add_compile_options(-DSERIAL_MPI) add_compile_options(-DMPI_MOD) set(SERIAL_MPI ON) + set(CSERIALMPI "#define SERIAL_MPI") endif() #------------------------------------------------------- @@ -347,6 +367,31 @@ add_compile_options(-DHAVE_LAPACK) include(${CMAKE_CURRENT_LIST_DIR}/cmake/FindMETIS.cmake) find_package(METIS) +if(METIS_FOUND) + + set(METIS_INDEX 64 CACHE STRING "Index size for METIS (default: 64)") + + # Check conditions for LPK_SIZE and METIS_INDEX + if(LPK_SIZE STREQUAL "4") + if(METIS_INDEX STREQUAL "64") + # Mismatch between METIS size and PSBLAS LPK + message(FATAL " Mismatch between metis ${METIS_INDEX} size and psblas LPK size ${LPK_SIZE}") + endif() + endif() + + if(LPK_SIZE STREQUAL "8") + if(METIS_INDEX STREQUAL "32") + # Mismatch between METIS size and PSBLAS LPK + message(FATAL " Mismatch between metis ${METIS_INDEX} size and psblas LPK size ${LPK_SIZE}") + endif() + endif() + + + set(CHAVEMETIS "#define HAVE_METIS") + set(CINTMETIS "#define METIS_${IPK_SIZE}") + set(CREALMETIS "#define METIS_REAL_${LPK_SIZE}") +endif() + #--------------------------------------------------- # Use standardized GNU install directory conventions #--------------------------------------------------- From d3d8599a715d73f184c0ee05da6563363dfdd5cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luca=20Pep=C3=A8=20Sciarria?= Date: Fri, 21 Mar 2025 15:42:17 +0100 Subject: [PATCH 09/10] fix config name, add PSB_ prefix --- CMakeLists.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 734d1dac..216a6224 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -138,8 +138,8 @@ if(NOT DEFINED LPK_SIZE) endif() # Define IPKDEF and LPKDEF based on the sizes -set(IPKDEF "#define IPK${IPK_SIZE}") -set(LPKDEF "#define LPK${LPK_SIZE}") +set(IPKDEF "#define PSB_IPK${IPK_SIZE}") +set(LPKDEF "#define PSB_LPK${LPK_SIZE}") # Output the definitions for verification message(STATUS "Using IPKDEF: ${IPKDEF}") @@ -338,7 +338,7 @@ else() add_compile_options(-DSERIAL_MPI) add_compile_options(-DMPI_MOD) set(SERIAL_MPI ON) - set(CSERIALMPI "#define SERIAL_MPI") + set(CSERIALMPI "#define PSB_SERIAL_MPI") endif() #------------------------------------------------------- @@ -387,9 +387,9 @@ if(METIS_FOUND) endif() - set(CHAVEMETIS "#define HAVE_METIS") - set(CINTMETIS "#define METIS_${IPK_SIZE}") - set(CREALMETIS "#define METIS_REAL_${LPK_SIZE}") + set(CHAVEMETIS "#define PSB_HAVE_METIS") + set(CINTMETIS "#define PSB_METIS_${IPK_SIZE}") + set(CREALMETIS "#define PSB_METIS_REAL_${LPK_SIZE}") endif() #--------------------------------------------------- From b5ac51a262718df513cbc2ae140e15e8fba5d93f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luca=20Pep=C3=A8=20Sciarria?= Date: Fri, 21 Mar 2025 16:02:58 +0100 Subject: [PATCH 10/10] hot fix, now IPK and LPK value may be passed to cmake through -DCMAKE_PSB_IPK/LPK flag --- CMakeLists.txt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 216a6224..d742bed2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -129,14 +129,17 @@ set(DEFAULT_IPK_SIZE 4) set(DEFAULT_LPK_SIZE 8) # Allow user to override with command line definitions -if(NOT DEFINED IPK_SIZE) - set(IPK_SIZE ${DEFAULT_IPK_SIZE} CACHE STRING "Size of IPK (default: 4)") +if(NOT DEFINED CMAKE_PSB_IPK) + set(CMAKE_PSB_IPK ${DEFAULT_IPK_SIZE} CACHE STRING "Size of IPK (default: 4)") endif() -if(NOT DEFINED LPK_SIZE) - set(LPK_SIZE ${DEFAULT_LPK_SIZE} CACHE STRING "Size of LPK (default: 8)") +if(NOT DEFINED CMAKE_PSB_LPK) + set(CMAKE_PSB_LPK ${DEFAULT_LPK_SIZE} CACHE STRING "Size of LPK (default: 8)") endif() +# Use the passed values +set(IPK_SIZE ${CMAKE_PSB_IPK}) +set(LPK_SIZE ${CMAKE_PSB_LPK}) # Define IPKDEF and LPKDEF based on the sizes set(IPKDEF "#define PSB_IPK${IPK_SIZE}") set(LPKDEF "#define PSB_LPK${LPK_SIZE}")