WASM compilation of GEOM

This commit is contained in:
Louis Gombert 2024-08-08 09:41:44 +00:00
parent 6395ebefdf
commit 7722274ea7
3 changed files with 37 additions and 11 deletions

View File

@ -26,6 +26,27 @@ PROJECT(SalomeGEOM C CXX)
# upper case # upper case
STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC) STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
if (DEFINED EMSCRIPTEN)
list(APPEND CMAKE_FIND_ROOT_PATH "/")
message("Using Emscripten")
add_compile_options("--use-port=boost_headers" "-pthread")
add_link_options("-pthread")
else()
message("Not using Emscripten")
endif()
# WASM libraries cannot be shared
macro(ADD_GOEM_LIBRARY NAME SOURCES)
IF (NOT DEFINED EMSCRIPTEN)
ADD_LIBRARY(${NAME} SHARED ${SOURCES})
ELSE()
ADD_LIBRARY(${NAME} STATIC ${SOURCES})
ENDIF()
endmacro()
message("Size of voidP " ${CMAKE_SIZEOF_VOID_P})
# Common CMake macros # Common CMake macros
# =================== # ===================
SET(CONFIGURATION_ROOT_DIR $ENV{CONFIGURATION_ROOT_DIR} CACHE PATH "Path to the Salome CMake configuration files") SET(CONFIGURATION_ROOT_DIR $ENV{CONFIGURATION_ROOT_DIR} CACHE PATH "Path to the Salome CMake configuration files")
@ -36,6 +57,7 @@ ELSE()
MESSAGE(FATAL_ERROR "We absolutely need the Salome CMake configuration files, please define CONFIGURATION_ROOT_DIR !") MESSAGE(FATAL_ERROR "We absolutely need the Salome CMake configuration files, please define CONFIGURATION_ROOT_DIR !")
ENDIF() ENDIF()
# Versioning # Versioning
# =========== # ===========
SALOME_SETUP_VERSION(9.12.0) SALOME_SETUP_VERSION(9.12.0)
@ -43,9 +65,11 @@ MESSAGE(STATUS "Building ${PROJECT_NAME_UC} ${${PROJECT_NAME_UC}_VERSION} from \
# Find KERNEL # Find KERNEL
# =========== # ===========
FIND_PACKAGE(SalomeOpenCASCADE REQUIRED)
SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR} CACHE PATH "Path to the Salome KERNEL") SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR} CACHE PATH "Path to the Salome KERNEL")
IF(EXISTS ${KERNEL_ROOT_DIR}) IF(EXISTS ${KERNEL_ROOT_DIR})
FIND_PACKAGE(SalomeKERNEL REQUIRED) FIND_PACKAGE(SalomeKERNEL "9.12.0" REQUIRED)
KERNEL_WITH_CORBA() #check whether KERNEL built with CORBA KERNEL_WITH_CORBA() #check whether KERNEL built with CORBA
ADD_DEFINITIONS(${KERNEL_DEFINITIONS}) ADD_DEFINITIONS(${KERNEL_DEFINITIONS})
INCLUDE_DIRECTORIES(${KERNEL_INCLUDE_DIRS}) INCLUDE_DIRECTORIES(${KERNEL_INCLUDE_DIRS})
@ -83,13 +107,13 @@ MARK_AS_ADVANCED(SALOME_BUILD_GUI SALOME_GEOM_USE_OPENCV SALOME_GEOM_USE_VTK)
## ##
# Various # Various
FIND_PACKAGE(SalomePythonInterp REQUIRED) # FIND_PACKAGE(SalomePythonInterp REQUIRED)
FIND_PACKAGE(SalomePythonLibs REQUIRED) # FIND_PACKAGE(SalomePythonLibs REQUIRED)
FIND_PACKAGE(SalomePThread REQUIRED) FIND_PACKAGE(SalomePThread REQUIRED)
FIND_PACKAGE(SalomeSWIG REQUIRED) # FIND_PACKAGE(SalomeSWIG REQUIRED)
FIND_PACKAGE(SalomeBoost REQUIRED) FIND_PACKAGE(SalomeBoost REQUIRED)
FIND_PACKAGE(SalomeOmniORB REQUIRED) FIND_PACKAGE(SalomeOmniORB REQUIRED)
FIND_PACKAGE(SalomeOmniORBPy REQUIRED) # FIND_PACKAGE(SalomeOmniORBPy REQUIRED)
FIND_PACKAGE(SalomeLibXml2 REQUIRED) FIND_PACKAGE(SalomeLibXml2 REQUIRED)
FIND_PACKAGE(SalomeHDF5 REQUIRED COMPONENTS C) FIND_PACKAGE(SalomeHDF5 REQUIRED COMPONENTS C)
@ -137,8 +161,6 @@ ENDIF(SALOME_BUILD_GUI)
## GEOM specifics ## GEOM specifics
## ##
FIND_PACKAGE(SalomeOpenCASCADE REQUIRED)
IF(SALOME_GEOM_USE_VTK) IF(SALOME_GEOM_USE_VTK)
FIND_PACKAGE(SalomeVTK REQUIRED) FIND_PACKAGE(SalomeVTK REQUIRED)
ADD_DEFINITIONS(-DWITH_VTK) ADD_DEFINITIONS(-DWITH_VTK)

View File

@ -21,12 +21,16 @@
# Common packages # Common packages
## ##
SET(SUBDIRS_COMMON SET(SUBDIRS_COMMON
ARCHIMEDE BlockFix GEOMAlgo SKETCHER GEOM ShHealOper GEOMUtils XAO XAO_Swig ARCHIMEDE BlockFix GEOMAlgo SKETCHER GEOM ShHealOper GEOMUtils XAO
GEOMImpl GEOM_I GEOMClient GEOM_I_Superv GEOM_SWIG GEOM_PY GEOMImpl GEOM_I GEOMClient GEOM_I_Superv GEOM_PY
AdvancedEngine AdvancedEngine
STLPlugin BREPPlugin STEPPlugin IGESPlugin XAOPlugin Tools STLPlugin BREPPlugin STEPPlugin IGESPlugin XAOPlugin Tools
) )
if (NOT DEFINED EMSCRIPTEN)
list(SUBDIRS_COMMON APPEND XAO_Swig GEOM_SWIG)
endif()
## ##
# OPENCV # OPENCV
## ##

View File

@ -62,7 +62,7 @@ SET(GEOMImpl_HEADERS
GEOMImpl_IShapesOperations.hxx GEOMImpl_IShapesOperations.hxx
GEOMImpl_IBlocksOperations.hxx GEOMImpl_IBlocksOperations.hxx
GEOMImpl_IBooleanOperations.hxx GEOMImpl_IBooleanOperations.hxx
GEOMImpl_ICurvesOperations.hxx # GEOMImpl_ICurvesOperations.hxx # Uses Python
GEOMImpl_ILocalOperations.hxx GEOMImpl_ILocalOperations.hxx
GEOMImpl_IInsertOperations.hxx GEOMImpl_IInsertOperations.hxx
GEOMImpl_IECallBack.hxx GEOMImpl_IECallBack.hxx
@ -198,7 +198,7 @@ SET(GEOMImpl_SOURCES
GEOMImpl_IShapesOperations.cxx GEOMImpl_IShapesOperations.cxx
GEOMImpl_IBlocksOperations.cxx GEOMImpl_IBlocksOperations.cxx
GEOMImpl_IBooleanOperations.cxx GEOMImpl_IBooleanOperations.cxx
GEOMImpl_ICurvesOperations.cxx # GEOMImpl_ICurvesOperations.cxx # Uses Python
GEOMImpl_ILocalOperations.cxx GEOMImpl_ILocalOperations.cxx
GEOMImpl_IInsertOperations.cxx GEOMImpl_IInsertOperations.cxx
GEOMImpl_IECallBack.cxx GEOMImpl_IECallBack.cxx