|
|
@ -115,12 +115,6 @@ option( KICAD_UPDATE_CHECK |
|
|
|
"Build in update check" |
|
|
|
ON ) |
|
|
|
|
|
|
|
# EGL is only needed on Linux with Wayland |
|
|
|
cmake_dependent_option( KICAD_USE_EGL |
|
|
|
"Build KiCad with EGL backend support for Wayland." |
|
|
|
OFF "UNIX_NOT_APPLE" |
|
|
|
OFF) |
|
|
|
|
|
|
|
cmake_dependent_option( KICAD_USE_BUNDLED_GLEW |
|
|
|
"Use the bundled version of GLEW - only available when KICAD_USE_EGL is set" |
|
|
|
ON "KICAD_USE_EGL" |
|
|
@ -286,16 +280,6 @@ add_compile_definitions( $<$<BOOL:${KICAD_GAL_PROFILE}>:KICAD_GAL_PROFILE> ) |
|
|
|
add_compile_definitions( $<$<BOOL:${KICAD_WIN32_VERIFY_CODESIGN}>:KICAD_WIN32_VERIFY_CODESIGN> ) |
|
|
|
add_compile_definitions( $<$<BOOL:${KICAD_UPDATE_CHECK}>:KICAD_UPDATE_CHECK> ) |
|
|
|
|
|
|
|
if( KICAD_USE_EGL ) |
|
|
|
message( STATUS "Configuring KiCad for the wxGLCanvas EGL backend" ) |
|
|
|
add_compile_definitions( KICAD_USE_EGL ) |
|
|
|
endif() |
|
|
|
|
|
|
|
if( KICAD_WAYLAND ) |
|
|
|
message( STATUS "Configuring KiCad to support Wayland features" ) |
|
|
|
add_compile_definitions( KICAD_WAYLAND ) |
|
|
|
endif() |
|
|
|
|
|
|
|
if( KICAD_IPC_API ) |
|
|
|
add_definitions( -DKICAD_IPC_API ) |
|
|
|
endif() |
|
|
@ -755,43 +739,6 @@ if( KICAD_BUILD_I18N ) |
|
|
|
find_package( Gettext REQUIRED ) |
|
|
|
endif() |
|
|
|
|
|
|
|
# |
|
|
|
# Find OpenGL library, required |
|
|
|
# |
|
|
|
if( KICAD_USE_EGL ) |
|
|
|
find_package( OpenGL REQUIRED COMPONENTS OpenGL EGL ) |
|
|
|
else() |
|
|
|
set( OpenGL_GL_PREFERENCE "LEGACY" ) # CMake 3.11+ setting; see 'cmake --help-policy CMP0072' |
|
|
|
find_package( OpenGL REQUIRED ) |
|
|
|
endif() |
|
|
|
|
|
|
|
# |
|
|
|
# Find GLEW library, required |
|
|
|
# |
|
|
|
# The EGL canvas on GTK requires the use of a GLEW version compiled with an EGL flag. |
|
|
|
# The one built in the thirdparty directory has the flag for EGL set, so we use it unless told |
|
|
|
# otherwise. Then we search for the system GLEW version and use that instead. |
|
|
|
# |
|
|
|
if( KICAD_USE_EGL AND KICAD_USE_BUNDLED_GLEW AND UNIX AND NOT APPLE ) |
|
|
|
if( OpenGL_EGL_FOUND ) |
|
|
|
message( STATUS "Found OpenGL EGL library: ${OPENGL_egl_LIBRARY}" ) |
|
|
|
else() |
|
|
|
message( FATAL_ERROR "OpenGL EGL library not found" ) |
|
|
|
endif() |
|
|
|
|
|
|
|
# Add the custom GLEW target |
|
|
|
add_subdirectory( thirdparty/glew ) |
|
|
|
|
|
|
|
# Set the standard package variables to point to our custom target to mimic the system version. |
|
|
|
set( GLEW_LIBRARIES glew ) |
|
|
|
set( GLEW_FOUND TRUE ) |
|
|
|
include_directories( SYSTEM $<TARGET_PROPERTY:glew,INCLUDE_DIRECTORIES> ) |
|
|
|
else() |
|
|
|
find_package( GLEW REQUIRED ) |
|
|
|
check_find_package_result( GLEW_FOUND "GLEW" ) |
|
|
|
include_directories( SYSTEM ${GLEW_INCLUDE_DIR} ) |
|
|
|
endif() |
|
|
|
|
|
|
|
# |
|
|
|
# Find GLM library, required |
|
|
|
# |
|
|
@ -1077,6 +1024,8 @@ else() |
|
|
|
message( FATAL_ERROR "Unable to detect wxWidgets port") |
|
|
|
endif() |
|
|
|
|
|
|
|
message(STATUS "wxUSE_GLCANVAS_EGL=${wxWidgets_GLCANVAS_EGL}") |
|
|
|
|
|
|
|
if( NOT MSVC ) |
|
|
|
if( ${wxWidgets_VERSION_STRING} VERSION_LESS 3.2 ) |
|
|
|
message( FATAL_ERROR "wxWidgets 3.2.0 or greater is required" ) |
|
|
@ -1093,6 +1042,55 @@ if( MINGW ) |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
# |
|
|
|
# Find OpenGL library, required |
|
|
|
# |
|
|
|
if( wxWidgets_GLCANVAS_EGL EQUAL 1 ) |
|
|
|
set( KICAD_USE_EGL ON ) |
|
|
|
find_package( OpenGL REQUIRED COMPONENTS OpenGL EGL ) |
|
|
|
else() |
|
|
|
set( KICAD_USE_EGL OFF ) |
|
|
|
set( OpenGL_GL_PREFERENCE "LEGACY" ) # CMake 3.11+ setting; see 'cmake --help-policy CMP0072' |
|
|
|
find_package( OpenGL REQUIRED ) |
|
|
|
endif() |
|
|
|
|
|
|
|
if( KICAD_USE_EGL ) |
|
|
|
message( STATUS "Configuring KiCad for the wxGLCanvas EGL backend" ) |
|
|
|
add_compile_definitions( KICAD_USE_EGL ) |
|
|
|
endif() |
|
|
|
|
|
|
|
if( KICAD_WAYLAND ) |
|
|
|
message( STATUS "Configuring KiCad to support Wayland features" ) |
|
|
|
add_compile_definitions( KICAD_WAYLAND ) |
|
|
|
endif() |
|
|
|
|
|
|
|
# |
|
|
|
# Find GLEW library, required |
|
|
|
# |
|
|
|
# The EGL canvas on GTK requires the use of a GLEW version compiled with an EGL flag. |
|
|
|
# The one built in the thirdparty directory has the flag for EGL set, so we use it unless told |
|
|
|
# otherwise. Then we search for the system GLEW version and use that instead. |
|
|
|
# |
|
|
|
if( KICAD_USE_EGL AND KICAD_USE_BUNDLED_GLEW ) |
|
|
|
if( OpenGL_EGL_FOUND ) |
|
|
|
message( STATUS "Found OpenGL EGL library: ${OPENGL_egl_LIBRARY}" ) |
|
|
|
else() |
|
|
|
message( FATAL_ERROR "OpenGL EGL library not found" ) |
|
|
|
endif() |
|
|
|
|
|
|
|
# Add the custom GLEW target |
|
|
|
add_subdirectory( thirdparty/glew ) |
|
|
|
|
|
|
|
# Set the standard package variables to point to our custom target to mimic the system version. |
|
|
|
set( GLEW_LIBRARIES glew ) |
|
|
|
set( GLEW_FOUND TRUE ) |
|
|
|
include_directories( SYSTEM $<TARGET_PROPERTY:glew,INCLUDE_DIRECTORIES> ) |
|
|
|
else() |
|
|
|
find_package( GLEW REQUIRED ) |
|
|
|
check_find_package_result( GLEW_FOUND "GLEW" ) |
|
|
|
include_directories( SYSTEM ${GLEW_INCLUDE_DIR} ) |
|
|
|
endif() |
|
|
|
|
|
|
|
if( APPLE ) |
|
|
|
# Remove app bundles in ${KICAD_BIN} before installing anything new. |
|
|
|
# Must be defined before all includes so that it is executed first. |
|
|
|