Skip to content

Commit

Permalink
- Create target to build 3.2.1 version of ModelicaServices modelica3d
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@14869 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
sjoelund committed Jan 22, 2013
1 parent dd96143 commit 1097784
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 5 deletions.
13 changes: 9 additions & 4 deletions Compiler/FrontEnd/ModelicaBuiltin.mo
Original file line number Diff line number Diff line change
Expand Up @@ -2590,14 +2590,19 @@ external "builtin";
end extendsFrom;

function loadModelica3D
input String version := "3.2.1";
output Boolean status;
protected
String m3d;
algorithm
status := loadModel(Modelica,{"3.1"});
status := status and loadModel(ModelicaServices,{"1.0 modelica3d"});
m3d:=getInstallationDirectoryPath()+"/lib/omlibrary-modelica3d/";
status := status and min(loadFile({m3d + file for file in {"DoublePendulum.mo","Engine1b.mo","Internal.mo","Pendulum.mo"}}));
status := loadModel(Modelica,{version});
if version == "3.1" then
status := status and loadModel(ModelicaServices,{"1.0 modelica3d"});
m3d:=getInstallationDirectoryPath()+"/lib/omlibrary-modelica3d/";
status := status and min(loadFile({m3d + file for file in {"DoublePendulum.mo","Engine1b.mo","Internal.mo","Pendulum.mo"}}));
elseif status then
status := loadModel(ModelicaServices,{version + " modelica3d"});
end if;
annotation(Documentation(info="<html>
<h2>Usage</h2>
<p>Modelica3d requires some changes to the standard libraries in order to work correctly. These changes will make your MultiBody models unable to simulate because they need an m3d object. This API call will load the modified MSL 3.1 and MS 1.0 so Modelica3D runs. It will also load the Pendulum and DoublePendulum examples so they simulate properly.</p>
Expand Down
15 changes: 14 additions & 1 deletion Makefile.common
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,8 @@ omlibrary: build/lib/omlibrary/stamp modelica3d
build/lib/omlibrary/stamp: libraries/README
rm -rf build/lib/omlibrary
install -m755 -d "build/lib/omlibrary/Modelica 3.2.1" "build/lib/omlibrary/ModelicaServices 3.2.1" "build/lib/omlibrary/ModelicaReference 3.2.1" "build/lib/omlibrary/ModelicaTest 1.1"
$(MAKE) -f $(defaultMakefileTarget) omlibrary-internal omlibrary-32 omlibrary-services omlibrary-reference omlibrary-test
@# services3d target includes the services target
$(MAKE) -f $(defaultMakefileTarget) omlibrary-internal omlibrary-32 omlibrary-services3d omlibrary-reference omlibrary-test
touch $@
omlibrary-internal:
(cd libraries/ && find $(OMLIBRARY_INTERNAL_DIRS) -type d -not -path "*svn*" -exec install -m755 -d ../build/lib/omlibrary/{} \;)
Expand All @@ -223,11 +224,23 @@ omlibrary-reference:
omlibrary-test:
(cd "libraries/Modelica 3.2.1/ModelicaTest" && find . -type d -not -path "*svn*" -exec install -m755 -d "../../../build/lib/omlibrary/ModelicaTest 3.2.1/{}" \;)
(cd "libraries/Modelica 3.2.1/ModelicaTest" && find . -type f -not -path "*svn*" -exec install -p -m644 {} "../../../build/lib/omlibrary/ModelicaTest 3.2.1/{}" \;)
omlibrary-services3d: omlibrary-services
install -m755 -d "build/lib/omlibrary/ModelicaServices 3.2.1 modelica3d/"
install -m755 -d "build/lib/omlibrary/ModelicaServices 3.2.1 modelica3d/modbus"
install -m755 -d "build/lib/omlibrary/ModelicaServices 3.2.1 modelica3d/modcount"
install -m755 -d "build/lib/omlibrary/ModelicaServices 3.2.1 modelica3d/Modelica3D"
install -p -m644 "3rdParty/modelica3d/lib/modbus/src/modelica/modbus/package.mo" "build/lib/omlibrary/ModelicaServices 3.2.1 modelica3d/modbus/package.mo"
install -p -m644 "3rdParty/modelica3d/lib/mod3d/src/modelica/Modelica3D 3.2.1/package.mo" "build/lib/omlibrary/ModelicaServices 3.2.1 modelica3d/Modelica3D/package.mo"
install -p -m644 "3rdParty/modelica3d/lib/modcount/src/modelica/modcount/package.mo" "build/lib/omlibrary/ModelicaServices 3.2.1 modelica3d/modcount/package.mo"
install -p -m644 "build/lib/omlibrary/ModelicaServices 3.2.1/package.mo" "build/lib/omlibrary/ModelicaServices 3.2.1 modelica3d/package.mo"
patch "build/lib/omlibrary/ModelicaServices 3.2.1 modelica3d/package.mo" -p3 < "libraries/ModelicaServices 3.2.1 modelica3d.patch"
find "build/lib/omlibrary/ModelicaServices 3.2.1 modelica3d" -name "*.orig" -exec rm -f "{}" ";"

# Run this command to update the omlibrary patch. Add more libraries as needed
omlibrary-diff:
diff -u -x .svn -r "libraries/Modelica 3.2.1/Modelica" "build/lib/omlibrary/Modelica 3.2.1" > "libraries/Modelica 3.2.1.patch" || echo "*** Modelica 3.2.1 has patch"
diff -u -x .svn -r "libraries/Modelica 3.2.1/ModelicaServices/" "build/lib/omlibrary/ModelicaServices 3.2.1" > "libraries/ModelicaServices 3.2.1.patch" || echo "*** ModelicaServices 3.2.1 has patch"
diff -u -x .svn -r "build/lib/omlibrary/ModelicaServices 3.2.1/package.mo" "build/lib/omlibrary/ModelicaServices 3.2.1 modelica3d/package.mo" > "libraries/ModelicaServices 3.2.1 modelica3d.patch" || echo "*** ModelicaServices 3.2.1 modelica3d has patch"

distclean: clean
(cd Compiler && $(MAKE) -f $(defaultMakefileTarget) reallyclean)
Expand Down

0 comments on commit 1097784

Please sign in to comment.