Mac pre-release download way behind Windows version
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: Mac pre-release download way behind Windows version
It works perfectly, thanks!
Dark and Light stylesheets v2.0 to theme your FreeCAD UI, more information here
Re: Mac pre-release download way behind Windows version
That's expected behaviour. On Mac, the cmake configuration by default looks for the 3DConnexion Framework, and if it's found defaults FREECAD_USE_3DCONNEXION to ON. If it's not found, then it defaults to OFF. By manually specifying to use 3DConnexion when the drivers are not installed, you're essentially telling the build process to compile against some headers that it won't be able to find.blacey wrote:In my experience, the build fails when using the -DFREECAD_USE_3DCONNEXION=ON cmake argument if the frameworks are not installed. Any ideas?
So, short answer is that generally you should have the 3DConnexion drivers installed before building, if you want FreeCAD to be built using them. Only manually specify FREECAD_USE_3DCONNEXION (=OFF) if you want to turn off that support for whatever reason.
Haven't had a chance to look at why your builds aren't finding the 3D mice in any more detail, maybe this weekend if weather isn't nice . -Ian-
*Note that cmake might have cached the FREECAD_USE_3DCONNEXION=ON, so you might need to start with a fresh build directory or clean the cmake cache to make things happy again.
Re: Mac pre-release download way behind Windows version
Hi allian.rees wrote: blacey wrote:
In my experience, the build fails when using the -DFREECAD_USE_3DCONNEXION=ON cmake argument if the frameworks are not installed. Any ideas?
That's expected behaviour. On Mac, the cmake configuration by default looks for the 3DConnexion Framework, and if it's found defaults FREECAD_USE_3DCONNEXION to ON. If it's not found, then it defaults to OFF. By manually specifying to use 3DConnexion when the drivers are not installed, you're essentially telling the build process to compile against some headers that it won't be able to find.
I wonder if any of this is effect in some subtle way by if your hardware is present or not? I would agree that I would not expect it to, it should just look for the installed driver, but if the hardware is not present then the driver would not load into memory, presumably, so I wonder if something somewhere is looking at the driver or something else that only changes if the hardware is present....
Re: Mac pre-release download way behind Windows version
My point here was that it seem the successful build & test with forced USE_3D=ON serves as an initial confirmation that the build is finding the 3D Connexion frameworks that we added to the Travis-CI build process. Here is an excerpt from the latest build that shows it downloading and installing the drivers in a virgin Travis-CI build container and then the CMAKE arguments:ian.rees wrote: That's expected behaviour. On Mac, the cmake configuration by default looks for the 3DConnexion Framework, and if it's found defaults FREECAD_USE_3DCONNEXION to ON. If it's not found, then it defaults to OFF. By manually specifying to use 3DConnexion when the drivers are not installed, you're essentially telling the build process to compile against some headers that it won't be able to find.
So, short answer is that generally you should have the 3DConnexion drivers installed before building, if you want FreeCAD to be built using them. Only manually specify FREECAD_USE_3DCONNEXION (=OFF) if you want to turn off that support for whatever reason.
Code: Select all
### Download the 3D Connexion drivers/frameworks
$ curl -o /tmp/3dFW.dmg -L 'http://www.3dconnexion.com/index.php?eID=sdl&ext=tx_iccsoftware&oid=a273bdbc-c289-e10d-816b-567043331c9e&filename=3DxWareMac_v10-2-5_r2142.dmg'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0
0 31.8M 0 70921 0 0 19495 0 0:28:34 0:00:03 0:28:31 19495
11 31.8M 11 3812k 0 0 832k 0 0:00:39 0:00:04 0:00:35 3969k
34 31.8M 34 11.1M 0 0 2038k 0 0:00:16 0:00:05 0:00:11 5800k
58 31.8M 58 18.5M 0 0 2880k 0 0:00:11 0:00:06 0:00:05 6396k
80 31.8M 80 25.8M 0 0 3486k 0 0:00:09 0:00:07 0:00:02 6685k
100 31.8M 100 31.8M 0 0 3893k 0 0:00:08 0:00:08 --:--:-- 6865k
### Mount the downloaded image
$ hdiutil mount /tmp/3dFW.dmg
Checksumming Protective Master Boot Record (MBR : 0)…
Protective Master Boot Record (MBR :: verified CRC32 $AF51C71E
Checksumming GPT Header (Primary GPT Header : 1)…
GPT Header (Primary GPT Header : 1): verified CRC32 $78C7EF4E
Checksumming GPT Partition Data (Primary GPT Table : 2)…
GPT Partition Data (Primary GPT Tabl: verified CRC32 $AECDC004
Checksumming (Apple_Free : 3)…
(Apple_Free : 3): verified CRC32 $00000000
Checksumming disk image (Apple_HFS : 4)…
disk image (Apple_HFS : 4): verified CRC32 $464DB590
Checksumming (Apple_Free : 5)…
(Apple_Free : 5): verified CRC32 $00000000
Checksumming GPT Partition Data (Backup GPT Table : 6)…
GPT Partition Data (Backup GPT Table: verified CRC32 $AECDC004
Checksumming GPT Header (Backup GPT Header : 7)…
GPT Header (Backup GPT Header : 7): verified CRC32 $E0977562
verified CRC32 $9AC5C301
/dev/disk1 GUID_partition_scheme
/dev/disk1s1 Apple_HFS /Volumes/3Dconnexion Software
### Install the drivers
$ sudo installer -package /Volumes/3Dconnexion\ Software/Install\ 3Dconnexion\ software.pkg -target /
installer: Package name is 3Dconnexion Software
installer: Installing at base path /
installer: The install was successful.
installer: The install requires restarting now.
### Build FreeCAD
$ mkdir build && cd build && cmake -DFREECAD_USE_EXTERNAL_KDL=ON -DFREECAD_CREATE_MAC_APP=ON -DFREECAD_USE_3DCONNEXION=ON -DCMAKE_BUILD_TYPE=Release ../
Furthermore, during the build and test, I see the following in the travis-ci log file indicating that the build has 3D Connexion support.
Code: Select all
## during compile.
[ 34%] Building CXX object src/Mod/Image/App/CMakeFiles/Image.dir/AppImage.cpp.o
[ 34%] Building CXX object src/Gui/CMakeFiles/FreeCADGui.dir/3Dconnexion/GuiApplicationNativeEventAwareMac.cpp.o
[ 34%] Building CXX object src/Gui/CMakeFiles/FreeCADGui.dir/Application.cpp.o
## during test execution.
Log: Toolbars restored
Log: 3Dconnexion device initialized. Client ID: 4096
Log: Init: Entering event loop
- I haven't looked at the CMAKE files in detail, but do you report that the 3D Drivers were found if the cmake search finds them?
- Perhaps you can enable logging when you launch FreeCAD and look to see if the 3Dconnexion device initialized. Client ID: XXXX log message is issued?
No worries - I don't have a SpaceNAV mouse so it is a bit hard for me to take this any further but it seems it should be working... I have considered ordering a 3D mouse but haven't pulled the trigger yet - it would be better if we can get it working with your hardware.ian.rees wrote: Haven't had a chance to look at why your builds aren't finding the 3D mice in any more detail, maybe this weekend if weather isn't nice . -Ian-
Each Travis-CI build spins up a virgin container VM so everything has be installed from scratch, including git pull and creating a new build directory so I don't think the cache is biting us here.ian.rees wrote: *Note that cmake might have cached the FREECAD_USE_3DCONNEXION=ON, so you might need to start with a fresh build directory or clean the cmake cache to make things happy again.
Thanks for the feedback and help - we'll get this working
Cheers,
Bruce
Re: Mac pre-release download way behind Windows version
Tested this, on my machine the 3D mouse works fine using a build done with the drivers installed and 3D mouse disconnected. -Ian-jmaustpc wrote:I wonder if any of this is effect in some subtle way by if your hardware is present or not?
Re: Mac pre-release download way behind Windows version
Ian, do you have just the drivers or the drivers and the SDK installed.ian.rees wrote: Tested this, on my machine the 3D mouse works fine using a build done with the drivers installed and 3D mouse disconnected. -Ian-
If just the drivers, where did you get them from?
"fight the good fight"
Re: Mac pre-release download way behind Windows version
IIRC the drivers and SDK come in the same package for Mac. The file I downloaded most recently (I think for looking at this issue a few weeks back) is called "3DxWareMac_v10-2-4_r2077.dmg". I got them from the downloads section of the 3Dconnexion site.sgrogan wrote:Ian, do you have just the drivers or the drivers and the SDK installed.
Yes, I do see that in the log [edit: with the build I just did locally] with the 3D mouse connected, and interestingly also when it's disconnected.blacey wrote:Perhaps you can enable logging when you launch FreeCAD and look to see if the 3Dconnexion device initialized. Client ID: XXXX log message is issued?
Need to run off to work now. -Ian-
Re: Mac pre-release download way behind Windows version
FYI, we're using version 3DxWareMac_v10-2-5_r2142.dmg in the Travis-CI build.ian.rees wrote: IIRC the drivers and SDK come in the same package for Mac. The file I downloaded most recently (I think for looking at this issue a few weeks back) is called "3DxWareMac_v10-2-4_r2077.dmg". I got them from the downloads section of the 3Dconnexion site.
Need to run off to work now. -Ian-
Re: Mac pre-release download way behind Windows version
Got the 3Dconnexion thing mostly figured out, will need to do some research tomorrow on how best to fix it. The issue is that MakeMacBundleRelocatable.py is setting the wrong rpath to look for the 3Dconnexion Framework in the binaries that make up FreeCAD. -Ian-
Re: Mac pre-release download way behind Windows version
Good find, Ian! I totally was not thinking of that. I simply excluded the framework from being brought into the bundle and it seemed to work fine with the spacenav I use at work. The 3dconnexion framework is weak linked, so I think that means it won't cause problems for people who don't have the driver installed.
Code: Select all
diff --git a/src/Tools/MakeMacBundleRelocatable.py b/src/Tools/MakeMacBundleRelocatable.py
index d44a949..fae2910 100644
--- a/src/Tools/MakeMacBundleRelocatable.py
+++ b/src/Tools/MakeMacBundleRelocatable.py
@@ -3,7 +3,7 @@ import sys
import subprocess
import pprint
-SYS_PATHS = ["/System/", "/usr/lib/"]
+SYS_PATHS = ["/System/", "/usr/lib/", "/Library/Frameworks/3DconnexionClient.framework"]
class LibraryNotFound(Exception):
pass