Skip to content

Commit 796c97e

Browse files
committed
Rename library binary to QtNodes
1 parent 513bf72 commit 796c97e

File tree

90 files changed

+639
-120
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+639
-120
lines changed

CMakeLists.txt

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.8)
22

33
cmake_policy(SET CMP0072 NEW)
44

5-
project(QtNodes CXX)
5+
project(QtNodesLibrary CXX)
66

77
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
88

@@ -18,18 +18,18 @@ else()
1818
set(is_root_project ON)
1919
endif()
2020

21-
set(NODES_DEVELOPER_DEFAULTS "${is_root_project}" CACHE BOOL "Turns on default settings for development of QtNodes")
21+
set(QT_NODES_DEVELOPER_DEFAULTS "${is_root_project}" CACHE BOOL "Turns on default settings for development of QtNodes")
2222

23-
option(BUILD_TESTING "Build tests" "${NODES_DEVELOPER_DEFAULTS}")
24-
option(BUILD_EXAMPLES "Build Examples" "${NODES_DEVELOPER_DEFAULTS}")
25-
option(BUILD_DOCS "Build Documentation" "${NODES_DEVELOPER_DEFAULTS}")
23+
option(BUILD_TESTING "Build tests" "${QT_NODES_DEVELOPER_DEFAULTS}")
24+
option(BUILD_EXAMPLES "Build Examples" "${QT_NODES_DEVELOPER_DEFAULTS}")
25+
option(BUILD_DOCS "Build Documentation" "${QT_NODES_DEVELOPER_DEFAULTS}")
2626
option(BUILD_SHARED_LIBS "Build as shared library" ON)
2727
option(BUILD_DEBUG_POSTFIX_D "Append d suffix to debug libraries" OFF)
28-
option(NODES_FORCE_TEST_COLOR "Force colorized unit test output" OFF)
28+
option(QT_NODES_FORCE_TEST_COLOR "Force colorized unit test output" OFF)
2929

3030
enable_testing()
3131

32-
if(NODES_DEVELOPER_DEFAULTS)
32+
if(QT_NODES_DEVELOPER_DEFAULTS)
3333
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin")
3434
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib")
3535
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib")
@@ -103,29 +103,29 @@ set(CPP_SOURCE_FILES
103103

104104
# If we want to give the option to build a static library,
105105
# set BUILD_SHARED_LIBS option to OFF
106-
add_library(nodes ${CPP_SOURCE_FILES} ${RESOURCES})
106+
add_library(QtNodes ${CPP_SOURCE_FILES} ${RESOURCES})
107107

108-
add_library(QtNodes::nodes ALIAS nodes)
108+
add_library(QtNodes::QtNodes ALIAS QtNodes)
109109

110110

111-
target_include_directories(nodes
111+
target_include_directories(QtNodes
112112
PUBLIC
113113
$<INSTALL_INTERFACE:include>
114114
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
115115
PRIVATE
116116
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
117-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/nodes/internal>
117+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/QtNodes/internal>
118118
)
119119

120-
target_link_libraries(nodes
120+
target_link_libraries(QtNodes
121121
PUBLIC
122122
${Qt}::Core
123123
${Qt}::Widgets
124124
${Qt}::Gui
125125
${Qt}::OpenGL
126126
)
127127

128-
target_compile_definitions(nodes
128+
target_compile_definitions(QtNodes
129129
PUBLIC
130130
NODE_EDITOR_SHARED
131131
PRIVATE
@@ -134,25 +134,26 @@ target_compile_definitions(nodes
134134
QT_NO_KEYWORDS
135135
)
136136

137-
target_compile_options(nodes
137+
target_compile_options(QtNodes
138138
PRIVATE
139139
$<$<CXX_COMPILER_ID:MSVC>:/W4 /wd4127 /EHsc>
140140
$<$<CXX_COMPILER_ID:GNU>:-Wall -Wextra>
141141
)
142142
if(NOT "${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC")
143143
# Clang-Cl on MSVC identifies as "Clang" but behaves more like MSVC:
144-
target_compile_options(nodes
144+
target_compile_options(QtNodes
145145
PRIVATE
146146
$<$<CXX_COMPILER_ID:Clang>:-Wall -Wextra>
147147
)
148148
endif()
149149

150-
if(NODES_DEVELOPER_DEFAULTS)
151-
target_compile_features(nodes PUBLIC cxx_std_14)
152-
set_target_properties(nodes PROPERTIES CXX_EXTENSIONS OFF)
150+
if(QT_NODES_DEVELOPER_DEFAULTS)
151+
target_compile_features(QtNodes PUBLIC cxx_std_14)
152+
set_target_properties(QtNodes PROPERTIES CXX_EXTENSIONS OFF)
153153
endif()
154154

155-
set_target_properties(nodes
155+
156+
set_target_properties(QtNodes
156157
PROPERTIES
157158
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
158159
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
@@ -163,23 +164,23 @@ set_target_properties(nodes
163164
# Moc
164165
##
165166

166-
file(GLOB_RECURSE HEADERS_TO_MOC include/nodes/internal/*.hpp)
167+
file(GLOB_RECURSE HEADERS_TO_MOC include/QtNodes/internal/*.hpp)
167168

168169
if (Qt6_FOUND)
169170
qt_wrap_cpp(nodes_moc
170171
${HEADERS_TO_MOC}
171-
TARGET nodes
172+
TARGET QtNodes
172173
OPTIONS --no-notes # Don't display a note for the headers which don't produce a moc_*.cpp
173174
)
174175
else()
175176
qt5_wrap_cpp(nodes_moc
176177
${HEADERS_TO_MOC}
177-
TARGET nodes
178+
TARGET QtNodes
178179
OPTIONS --no-notes # Don't display a note for the headers which don't produce a moc_*.cpp
179180
)
180181
endif()
181182

182-
target_sources(nodes PRIVATE ${nodes_moc})
183+
target_sources(QtNodes PRIVATE ${nodes_moc})
183184

184185
###########
185186
# Examples
@@ -209,7 +210,7 @@ include(GNUInstallDirs)
209210

210211
set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/QtNodes)
211212

212-
install(TARGETS nodes
213+
install(TARGETS QtNodes
213214
EXPORT QtNodesTargets
214215
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
215216
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}

cmake/FindPySide2.cmake

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
#
2+
# SPDX-FileCopyrightText: 2020-2021 Klarälvdalens Datakonsult AB, a KDAB Group company <[email protected]>
3+
# Author: Renato Araujo Oliveira Filho <[email protected]>
4+
#
5+
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only
6+
#
7+
# Contact KDAB at <[email protected]> for commercial licensing options.
8+
#
9+
10+
# PYSIDE_BASEDIR - Top of the PySide2 installation
11+
# PYSIDE_INCLUDE_DIR - Directories to include to use PySide2
12+
# PYSIDE_LIBRARY - Files to link against to use PySide2
13+
# PYSIDE_TYPESYSTEMS - Type system files that should be used by other bindings extending PySide2
14+
#
15+
# You can install PySide2 from Qt repository with
16+
# pip3 install --index-url=https://download.qt.io/official_releases/QtForPython --trusted-host download.qt.io pyside2
17+
18+
find_package(PkgConfig)
19+
if(PKG_CONFIG_FOUND)
20+
pkg_check_modules(PYSIDE2_PRIV QUIET pyside2)
21+
endif()
22+
23+
set(PYSIDE2_FOUND FALSE)
24+
25+
if(PYSIDE2_PRIV_FOUND)
26+
set(PYSIDE2_FOUND TRUE)
27+
message(STATUS "Using PySide2 found in the system!")
28+
pkg_get_variable(SHIBOKEN_BINARY
29+
pyside2
30+
generator_location
31+
)
32+
pkg_get_variable(PYSIDE2_BASEDIR
33+
pyside2
34+
typesystemdir
35+
)
36+
pkg_get_variable(PYSIDE_INCLUDE_DIR
37+
pyside2
38+
includedir
39+
)
40+
set(PYSIDE_TYPESYSTEMS ${PYSIDE2_BASEDIR})
41+
set(PYSIDE2_SO_VERSION ${PYSIDE2_PRIV_VERSION})
42+
set(PYSIDE_LIBRARY ${PYSIDE2_PRIV_LINK_LIBRARIES})
43+
list(GET PYSIDE_LIBRARY 0 PYSIDE_LIBRARY)
44+
else()
45+
# extract python library basename
46+
list(GET Python3_LIBRARIES 0 PYTHON_LIBRARY_FILENAME)
47+
get_filename_component(PYTHON_LIBRARY_FILENAME ${PYTHON_LIBRARY_FILENAME} NAME)
48+
49+
execute_process(
50+
COMMAND ${Python3_EXECUTABLE} -c "if True:
51+
import os, sys
52+
try:
53+
import PySide2.QtCore as QtCore
54+
print(os.path.dirname(QtCore.__file__))
55+
except Exception as error:
56+
print(error, file=sys.stderr)
57+
exit()
58+
"
59+
OUTPUT_VARIABLE PYSIDE2_BASEDIR
60+
OUTPUT_STRIP_TRAILING_WHITESPACE
61+
)
62+
63+
if(PYSIDE2_BASEDIR)
64+
set(PYSIDE_BASEDIR ${PYSIDE2_BASEDIR} CACHE PATH "Top level install of PySide2" FORCE)
65+
execute_process(
66+
COMMAND ${Python3_EXECUTABLE} -c "if True:
67+
import os
68+
import PySide2.QtCore as QtCore
69+
print(os.path.basename(QtCore.__file__).split('.', 1)[1])
70+
"
71+
OUTPUT_VARIABLE PYSIDE2_SUFFIX
72+
OUTPUT_STRIP_TRAILING_WHITESPACE
73+
)
74+
75+
execute_process(
76+
COMMAND ${Python3_EXECUTABLE} -c "if True:
77+
import os
78+
import PySide2.QtCore as QtCore
79+
print(';'.join(map(str, QtCore.__version_info__)))
80+
"
81+
OUTPUT_VARIABLE PYSIDE2_SO_VERSION
82+
OUTPUT_STRIP_TRAILING_WHITESPACE
83+
)
84+
list(GET PYSIDE2_SO_VERSION 0 PYSIDE2_SO_MACRO_VERSION)
85+
list(GET PYSIDE2_SO_VERSION 1 PYSIDE2_SO_MICRO_VERSION)
86+
list(GET PYSIDE2_SO_VERSION 2 PYSIDE2_SO_MINOR_VERSION)
87+
string(REPLACE ";" "." PYSIDE2_SO_VERSION "${PYSIDE2_SO_VERSION}")
88+
89+
if(NOT APPLE)
90+
set(PYSIDE2_SUFFIX "${PYSIDE2_SUFFIX}.${PYSIDE2_SO_MACRO_VERSION}.${PYSIDE2_SO_MICRO_VERSION}")
91+
else()
92+
string(REPLACE ".so" "" PYSIDE2_SUFFIX ${PYSIDE2_SUFFIX})
93+
set(PYSIDE2_SUFFIX "${PYSIDE2_SUFFIX}.${PYSIDE2_SO_MACRO_VERSION}.${PYSIDE2_SO_MICRO_VERSION}.dylib")
94+
endif()
95+
96+
set(PYSIDE2_FOUND TRUE)
97+
message(STATUS "PySide2 base dir: ${PYSIDE2_BASEDIR}" )
98+
message(STATUS "PySide2 suffix: ${PYSIDE2_SUFFIX}")
99+
endif()
100+
101+
if (PYSIDE2_FOUND)
102+
#PySide
103+
#===============================================================================
104+
find_path(PYSIDE_INCLUDE_DIR
105+
pyside.h
106+
PATHS ${PYSIDE2_BASEDIR}/include ${PYSIDE2_CUSTOM_PREFIX}/include/PySide2
107+
NO_DEFAULT_PATH)
108+
109+
# Platform specific library names
110+
if(MSVC)
111+
SET(PYSIDE_LIBRARY_BASENAMES "pyside2.abi3.lib")
112+
elseif(CYGWIN)
113+
SET(PYSIDE_LIBRARY_BASENAMES "")
114+
elseif(WIN32)
115+
SET(PYSIDE_LIBRARY_BASENAMES "libpyside2.${PYSIDE2_SUFFIX}")
116+
else()
117+
SET(PYSIDE_LIBRARY_BASENAMES "libpyside2.${PYSIDE2_SUFFIX}")
118+
endif()
119+
120+
find_file(PYSIDE_LIBRARY
121+
${PYSIDE_LIBRARY_BASENAMES}
122+
PATHS ${PYSIDE2_BASEDIR} ${PYSIDE2_CUSTOM_PREFIX}/lib
123+
NO_DEFAULT_PATH)
124+
125+
find_path(PYSIDE_TYPESYSTEMS
126+
typesystem_core.xml
127+
PATHS ${PYSIDE2_BASEDIR}/typesystems ${PYSIDE2_CUSTOM_PREFIX}/share/PySide2/typesystems
128+
NO_DEFAULT_PATH)
129+
endif()
130+
endif()
131+
132+
if(PYSIDE2_FOUND)
133+
message(STATUS "PySide include dir: ${PYSIDE_INCLUDE_DIR}")
134+
message(STATUS "PySide library: ${PYSIDE_LIBRARY}")
135+
message(STATUS "PySide typesystems: ${PYSIDE_TYPESYSTEMS}")
136+
message(STATUS "PySide2 version: ${PYSIDE2_SO_VERSION}")
137+
138+
# Create PySide2 target
139+
add_library(PySide2::pyside2 SHARED IMPORTED GLOBAL)
140+
if(MSVC)
141+
set_property(TARGET PySide2::pyside2 PROPERTY
142+
IMPORTED_IMPLIB ${PYSIDE_LIBRARY})
143+
endif()
144+
set_property(TARGET PySide2::pyside2 PROPERTY
145+
IMPORTED_LOCATION ${PYSIDE_LIBRARY})
146+
set_property(TARGET PySide2::pyside2 APPEND PROPERTY
147+
INTERFACE_INCLUDE_DIRECTORIES
148+
${PYSIDE_INCLUDE_DIR}
149+
${PYSIDE_INCLUDE_DIR}/QtCore/
150+
${PYSIDE_INCLUDE_DIR}/QtGui/
151+
${PYSIDE_INCLUDE_DIR}/QtWidgets/
152+
${Python3_INCLUDE_DIRS}
153+
)
154+
endif()
155+
156+
157+
find_package_handle_standard_args(PySide2
158+
REQUIRED_VARS PYSIDE2_BASEDIR PYSIDE_INCLUDE_DIR PYSIDE_LIBRARY PYSIDE_TYPESYSTEMS
159+
VERSION_VAR PYSIDE2_SO_VERSION
160+
)

0 commit comments

Comments
 (0)