Skip to content

Commit d17c7e5

Browse files
committed
searching libs via cmake
1 parent b4ab954 commit d17c7e5

7 files changed

Lines changed: 59 additions & 23 deletions

File tree

CMakeLists.txt

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ foreach(FOLDER_NAME IN ITEMS layer0 layer1 layer2 layer3 layer4 layer5 ov)
1414
include(${CMAKE_CURRENT_SOURCE_DIR}/${FOLDER_NAME}/sources.cmake)
1515
endforeach()
1616

17+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
18+
include(Dependencies)
19+
include(Helpers)
20+
1721
target_link_options(${TARGET_NAME} PRIVATE
1822
"$<$<PLATFORM_ID:Darwin>:LINKER:-undefined,dynamic_lookup>"
1923
)
@@ -45,23 +49,6 @@ execute_process(
4549
OUTPUT_STRIP_TRAILING_WHITESPACE
4650
)
4751

48-
function(set_output_path lib path)
49-
set_target_properties(${lib} PROPERTIES
50-
PREFIX ""
51-
SUFFIX "${PYTHON_MODULE_SUFFIX}"
52-
OUTPUT_NAME "${lib}"
53-
LIBRARY_OUTPUT_DIRECTORY "${path}"
54-
RUNTIME_OUTPUT_DIRECTORY "${path}"
55-
)
56-
57-
foreach(CONFIG IN ITEMS RELEASE DEBUG RELWITHDEBINFO MINSIZEREL)
58-
set_target_properties(${lib} PROPERTIES
59-
LIBRARY_OUTPUT_DIRECTORY_${CONFIG} "${path}"
60-
RUNTIME_OUTPUT_DIRECTORY_${CONFIG} "${path}"
61-
)
62-
endforeach()
63-
endfunction()
64-
6552
set_output_path(${TARGET_NAME} "${Python_SITEARCH}/pymol")
6653

6754
target_compile_features(${TARGET_NAME} PRIVATE cxx_std_17)

cmake/Dependencies.cmake

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
include_guard()
2+
3+
if(DEFINED ENV{CONDA_PREFIX})
4+
set(CONDA_PREFIX $ENV{CONDA_PREFIX})
5+
message(STATUS "Found Conda prefix: ${CONDA_PREFIX}")
6+
7+
if(WIN32)
8+
set(CONDA_LIBRARY_DIR ${CONDA_PREFIX}/Library/lib)
9+
set(CONDA_INCLUDE_DIR ${CONDA_PREFIX}/Library/include)
10+
set(CONDA_CMAKE_DIR ${CONDA_PREFIX}/Library/lib/cmake)
11+
else()
12+
set(CONDA_LIBRARY_DIR ${CONDA_PREFIX}/lib)
13+
set(CONDA_INCLUDE_DIR ${CONDA_PREFIX}/include)
14+
set(CONDA_CMAKE_DIR ${CONDA_PREFIX}/lib/cmake)
15+
endif()
16+
17+
list(APPEND CMAKE_PREFIX_PATH ${CONDA_PREFIX} ${CONDA_CMAKE_DIR})
18+
list(APPEND CMAKE_LIBRARY_PATH ${CONDA_LIBRARY_DIR})
19+
list(APPEND CMAKE_INCLUDE_PATH ${CONDA_INCLUDE_DIR})
20+
21+
endif()
22+
23+
include(dependencies/Freetype)
24+
include(dependencies/Png)

cmake/Helpers.cmake

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
include_guard()
2+
3+
function(set_output_path lib path)
4+
set_target_properties(${lib} PROPERTIES
5+
PREFIX ""
6+
SUFFIX "${PYTHON_MODULE_SUFFIX}"
7+
OUTPUT_NAME "${lib}"
8+
LIBRARY_OUTPUT_DIRECTORY "${path}"
9+
RUNTIME_OUTPUT_DIRECTORY "${path}"
10+
)
11+
12+
foreach(CONFIG IN ITEMS RELEASE DEBUG RELWITHDEBINFO MINSIZEREL)
13+
set_target_properties(${lib} PROPERTIES
14+
LIBRARY_OUTPUT_DIRECTORY_${CONFIG} "${path}"
15+
RUNTIME_OUTPUT_DIRECTORY_${CONFIG} "${path}"
16+
)
17+
endforeach()
18+
endfunction()
19+

cmake/dependencies/Freetype.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
find_package(Freetype REQUIRED)
2+
target_link_libraries(${TARGET_NAME}
3+
Freetype::Freetype
4+
)

cmake/dependencies/Png.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
find_package(PNG REQUIRED)
2+
target_link_libraries(${TARGET_NAME}
3+
PNG::PNG
4+
)

contrib/champ/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ add_library(${CHEMPY_PROJECT_NAME} MODULE
1313
vla.c
1414
)
1515

16+
include(Helpers)
17+
1618
target_link_options(${CHEMPY_PROJECT_NAME} PRIVATE
1719
"$<$<PLATFORM_ID:Darwin>:LINKER:-undefined,dynamic_lookup>"
1820
)

setup.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ def make_launch_script(self):
472472

473473

474474
pymol_src_dirs = [generated_dir]
475-
libs = ["png", "freetype"]
475+
libs = []
476476

477477
inc_dirs = []
478478
def_macros = []
@@ -565,8 +565,6 @@ def make_launch_script(self):
565565
libs += (
566566
[
567567
"glew32",
568-
"freetype",
569-
"libpng",
570568
]
571569
+ (options.glut)
572570
* [
@@ -633,15 +631,12 @@ def make_launch_script(self):
633631
"openvr_api",
634632
]
635633

636-
inc_dirs += pymol_src_dirs
637-
638634
for prefix in prefix_path:
639635
for dirs, suffixes in [
640636
[
641637
inc_dirs,
642638
[
643639
("include",),
644-
("include", "freetype2"),
645640
("include", "libxml2"),
646641
("include", "openvr"),
647642
],
@@ -660,6 +655,7 @@ def get_sources(subdirs, suffixes=(".c", ".cpp")) -> list[str]:
660655
[f for d in subdirs for s in suffixes for f in glob.glob(d + "/*" + s)]
661656
)
662657

658+
inc_dirs += pymol_src_dirs
663659

664660
ext_modules += [
665661
CMakeExtension(

0 commit comments

Comments
 (0)